php – 变音符号和mb_substr的问题

我正在使用mb_substr函数切换带变音符号的unicode字符串,但它可以使用简单的substr函数.它将unicode字符分成两半,显示标记为菱形的问题.

例如.

echo mb_substr('ááááá', 0, 5); //Displays áá�

可能有什么问题?

解决方法:

如果我没有将编码指定为mb_substr的最后一个参数,我会遇到同样的问题:它至少在我的服务器上默认为ISO-8859-1.

但是,如果我正确地将编码设置为UTF-8,它可以正常工作:

echo mb_substr('ááááá', 0, 5, 'UTF-8');

在浏览器中获取正确的显示:

ááááá

mb_substr(引用,强调我的):

string mb_substr  ( string $str  , int $start  [, 
    int $length  [, string $encoding  ]] )

The encoding parameter is
the character encoding. If it is
omitted, the internal character
encoding value will be used
.

上一篇:python 解决illegal multibyte sequence


下一篇:python爬虫-'gbk' codec can't encode character '\xa0' in position 134: illega