我正在使用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.