我从数据库中获取外来(日语)字符,并使用substr()来限制字符串的长度。
然而,当我这样做时,它会从字符串中删除一个字符,并留下黑色钻石中的一个问号作为替换字符( )
Everything(Documents,Charset,table encoding)设置为UTF-8。
以下是发生的事情的一个例子
$string = "日本最大級のポータルサイト。"
echo substr($string, 0,10);
哪个输出日本最
你如何推荐我找到/替换这个问号图标?
答案 0 :(得分:4)
在处理UTF-strigs时不能使用substr()
,因为那里的每个符号将表示为多个字节,而不是单字节(对于非ASCII字符)。 substr()
适用于字节。相反,你应该使用mb_substr()
来安全地纠正返回所需的结果。
要在PHP中使用多字节字符串,有mbstring
扩展名,mb_substr()
是其中的一部分。
答案 1 :(得分:0)
只要在服务器上启用了mb_substr(),就应该使用它。