问题描述
好像符号是Å
,但由于数据由不应公开的姓氏组成,因此只显示了第一个字母,并由just来完成$lastname[0]
,这对于多字节字符串是错误的,并造成了整个麻烦。更改为mb_substr($lastname,
0, 1)
-就像魅力一样。
解决方法
我正在json_encode()
使用utf8_general_ci
排序规则调用来自MySQL数据库的数据。问题是某些行包含我无法清除的怪异数据。例如,符号�
,所以一旦到达json_encode()
,它就会失败json_encode():
Invalid UTF-8 sequence in argument
。
我已经尝试过utf8_encode()
和utf8_decode()
,即使这样做,mb_check_encoding()
但它会不断通过并造成严重破坏。
在Mac上运行PHP 5.3.10。因此,问题是-如何清除无效的utf8符号,保留其余数据,以便json_encoding()
可行?
更新。这是一种重现它的方法:
echo json_encode(pack("H*",'c32e'));