php截取中文字符串无乱码

使用php内置方法mb_substr截取中文不乱码。

1,GBK编码截取,代码:

<?php

$str = '我是谁'; //gbk编码的字符串

echo mb_substr($str, 0, 1, 'gbk'); //输出 我

说明:

mb_substr方法比substr多一个参数,用来指定字符串编码。

2,utf-8编码截取,代码:

<?php

$str = '我abc是谁'; //utf-8编码的字符串 www.jbxue.com

echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a

中英混合也完全没有问题。

使用时,注意php文件的编码,和网页显示时的编码。
使用这个mb_substr方法要事先知道字符串的编码,如果不知道编码,就需要判断。
mbstring库还提供了mb_check_encoding来检验字符串编码,但还不完善。

你可能感兴趣的:(PHP)