json与�

今天卜卜口的 PHP 遇到了一个问题,在读取一份 array 的时候,里面一部分数据是乱码的,导致 json_encode 失效。

首先需要看看乱码是不是编码引起的,想切换编码的时候,发现。。。

encode

编码你怎么了编码!!!

原来是网页发送了 json 头,屏蔽掉之后就可以更换编码,看起来没有一个正常。遂另存为仔细观察之。

e

噫,&#65533是什么鬼东西?查了资料才知道,就是我们有时候会遇到的�这个东西。

在读取数据的时候,如果遇到无法识别的编码就会用 Unicode 替换字符(U+FFFD,转换 10 进制就是 65533)代替。

知道问题就好解决了,要么去掉这玩意儿再 encode ,要么让 PHP 想办法继续,

查 PHP 文档发现 json_encode 函数第二个参数传入 JSON_PARTIAL_OUTPUT_ON_ERROR 就可以让 encode 忽略掉错误继续执行。

问题解决~\(≧▽≦)/~

json与� 有 12 个评论

  1. tcdw

    这解决方案不错,收藏了。

  2. 果果喵

    用�去百度搜索了下……然后百度说我被劫持了 ∑( ° △ °|||)︴

  3. 天幻

    原来窝经常不能切换编码是它的锅吗!

  4. hcl

    看到这个题目吓了一跳。。

  5. grzhan

    感觉以前经常碰到类似的情况是因为UTF8 BOM……

  6. ⑨更喵

    看到标题以为Chrome mobile抽了…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.