使用像é这样的国际字符的PHP json_encode主干字符串

时间:2011-02-26 15:31:40

标签: php json

这个简单的代码向您展示了问题:

class MyObject
{
    var $publicString = "This is a weird character : é and it will trunk this sentence";
}
$myObject = new MyObject();
var_dump(json_encode($myObject));

var_dump输出为:

 string(47) "{"publicString":"This is a weird character : "}"

为什么?

2 个答案:

答案 0 :(得分:4)

json_encode()需要UTF-8数据。

我假设您的文件是ISO-8859-1编码的。 ISO-8859-1 é是UTF-8中的无效字符。

解决方法是将文件存储为UTF-8,或执行iconv()

$myObject->publicString = 
     iconv("iso-8859-1", "utf-8//IGNORE", $myObject->publicString);

var_dump(json_encode($myObject));

答案 1 :(得分:0)

json_encode()仅适用于UTF-8字符集。这是关于如何处理这个问题的link to an example