我切片unicode字符串使用mb_substr功能变音符号,但它的工作原理是,我会用简单的substr功能。它分裂成两半显示问题显着金刚石Unicode字符。

E.g。

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  ]] )
  

encoding参数是   字符编码。 如果它是   省略,内部字符   编码值将被使用

其他提示

我有同样的问题和上面的答案帮助我了。除了设置php.ini或使用 ini_set() ,可能也有助于使用mb_internal_encoding('utf-8');utf-8可以在你的选择来代替),用于设置永久编码多字节功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top