Tod*_*enk 3 html php unicode utf-8 character-encoding
我正在从数据库中获取外语(日语)字符并使用 substr() 来限制字符串的长度。
\n\n但是,当我这样做时,它会从字符串中切掉一个字符,并留下黑色菱形中的问号之一作为替换字符(\xef\xbf\xbd)
\n\n所有内容(文档、字符集、表编码)均设置为 UTF-8。
\n\n这是发生的情况的示例
\n\n$string = "\xe6\x97\xa5\xe6\x9c\xac\xe6\x9c\x80\xe5\xa4\xa7\xe7\xb4\x9a\xe3\x81\xae\xe3\x83\x9d\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\xab\xe3\x82\xb5\xe3\x82\xa4\xe3\x83\x88\xe3\x80\x82"\necho substr($string, 0,10); \nRun Code Online (Sandbox Code Playgroud)\n\n输出 \xe6\x97\xa5\xe6\x9c\xac\xe6\x9c\x80\xef\xbf\xbd
\n\n您建议我如何查找/替换此问号图标?
\n处理 UTF-strigs 时不能使用substr(),因为每个符号将表示为多个字节,而不是单个字节(对于非 ASCII 字符)。并substr()适用于bytes。相反,您应该使用mb_substr()它将安全且正确地返回所需结果的方法。
为了在 PHP 中处理多字节字符串,有一个mbstring扩展,并且mb_substr()是它的一部分。
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |