PHP 汉字截取字符串出现了问题!!大神快来啊!!!!!

WBOY
Freigeben: 2016-06-06 20:41:12
Original
980 Leute haben es durchsucht

<code><br>$a='王多多';



echo mb_substr($a,0,2);

exit;


?>


</code>
Nach dem Login kopieren
Nach dem Login kopieren

按理说应该出现王多两个字,为什么出现了
我擦。。大神,这是为啥呢??????

回复内容:

<code><br>$a='王多多';



echo mb_substr($a,0,2);

exit;


?>


</code>
Nach dem Login kopieren
Nach dem Login kopieren

按理说应该出现王多两个字,为什么出现了
我擦。。大神,这是为啥呢??????

mb_substr指定编码即可解决。在线运行结果:http://3v4l.org/OsNXf

应该是PHP版本BUG吧,我看 对于没有指定编码的字符串,mb_substr是使用PHP默认编码进行处理的,对比各个版本的默认编码你会发现5.6以下都是ISO-8859-1,而只有5.6以上才是UTF-8(感谢 @kankana 的纠正)。 所以在5.6以上是没有问题的,可查看在线运行结果:http://3v4l.org/dFDgs

<code>mb_substr($a,0,2,'utf8')
</code>
Nach dem Login kopieren

根据:http://php.net/manual/zh/function.mb-substr.php

因为一个汉字占3个字节?
假如截取2的话,只是截取两个字符(一个字符一个字节)。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!