我正在使用 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.
关于php - 变音符号和 mb_substr 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071232/