PHP字符串的编码问题的详细介绍
发布时间:2020-05-25 19:28:10 所属栏目:PHP 来源:互联网
导读:本篇文章介绍了,在PHP中字符串的编码问题的详细分析,需要的朋友参考下
大家都知道,不同字符编码,其在内存占用的字节数不一样。如 PHP 也自带几种字符串截取函数,其中常用到的就是 substr 和 mb_substr。 使用substr截取中文字符时会出现乱码,这是因为substr是按字节来截取的。即UTF-8编码的中文,使用substr截取,只会截取1/3个中文,当然出现乱码了。
mb_substr( string$str ,int $start [,int $length [,string $encoding ]] ) 中的参数$encoding可以指定编码,如果省略,则使用内部字符编码。
如果不清楚字符串的编码格式的话,可以用mb_detect_encoding检查: $encoding = mb_detect_encoding($string,array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′)); 然后:
mb_substr( string$str ,string $encoding ]] )
如果自己实现mb_substr,效率并不是很好。 编码相关的php函数使用 ord(substr($str,$i,1)) > 0xa0)
|