PHP学习笔记--不同编码占据不同的字节

gbk中 1个汉字=2个字节

utf-8中 1个汉字=3个字节

补充: 在php中 substr函数,是按照字节的截取的。所以在截取字符串时要考虑要中文编码和英文字符,因为他们所占字节不一样。如上所说。 在遇到中英混编时,substr就腌了。 所以在php5中 iconv_substr() 函数出现了,

iconv_substr() 函数是基于字节的位移来计算的,也就是按位计算。

如:

echo iconv_substr('我是123哈哈!',0,6,'UTF-8');
//显示:  我是123哈

还有 mb_substr() 函数和 mb_strcut() 注: mb_substr() 是按照字来算的。和iconv_substr() 差不多。而mb_substr() 是按照字节来分的。 但是不会像substr()函数一样,截取半个中文字符时,会出现乱码!

需要注意的是这两个函数使用都需要在php.ini 中把 php_mbstring.dll 功能给打开才能用

以上的函数,详细用法请自行查询PHP手册!