2012-09-17 33 views
2

我有一个数组,其中一个键包含一些HTML代码。我是json_encoding这个数组返回。我最近注意到,如果html包含特殊字符(即:Améhvirága),那么json_encode()返回'null'。重音字符在PHP中打破json_encode()

如何获得json_encode()如果特殊重音字符可用,不返回'null'?

+0

您是否在页面上以及在执行JSON编码的文件中设置了正确的编码(UTF-8优先)? –

+0

我测试了这个,并没有问题的HTML内容,请为我们提供一些代码... – Night2

回答

3

json_encode()假定文本采用UTF-8编码。如果输入看起来像格式错误的UTF-8,则返回null。获得json_encode()的唯一方法是使用UTF-8输入它(您应该可能会使用它)。作为Zathrus作家在评论中说,实际的PHP源代码本身也应该采用UTF-8编码,以防止微妙的错误。

+0

那么如何给人json_encode utf 8输入,当你有重音字符等? – Andrew

+0

重音字符可以用很多编码,但UTF-8是唯一用于大多数目的的合理字符。你如何到达,取决于你在做什么。 – TRiG

1

我的答案,用utf8_encode()包装了html字符串。

+0

玩弄字符编码而不理解什么是中断,为什么可以修复,但这是一种危险的方式。 – TRiG