这个简单的代码向您展示了问题:
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 : "}"
为什么?
答案 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。