PHP echo中的奇怪字符导致无效的JSON

时间:2013-01-10 10:33:24

标签: php json character

我在php中使用echo来返回数据库请求。当试图在Flash中解码结果时,我得到错误告诉我意外的字符。当我在浏览器中查看输出时看起来很好。但是当我复制内容(Select All - > Copy)然后通过php中的脚本运行文本时,我看到了许多奇怪的字符。这解释了为什么JSON解码失败,但我如何摆脱奇怪的角色呢?

测试脚本以检查字符串

    $string = str_split($string);
    echo '<pre>';
    print_r($string);
    echo '<pre>';

结果:

    [0] => ï
        [1] => »
        [2] => ¿
        [3] => ï
        [4] => »
        [5] => ¿
        [6] => ï
        [7] => »
        [8] => ¿
...

2 个答案:

答案 0 :(得分:2)

确保服务器使用正确的内容类型标头回复:

Content-type: application/json; charset=utf-8

答案 1 :(得分:0)

我在阅读this answer后找到了解决方案。问题是我的PHP文件是用带有BOM的UTF-8编码保存的。使用UTF-8编码保存文件解决了我的问题。