我这里有这个代码:
case 'resource_list':
if(file_exists('content.php')){
include('../ajax/content.php');
} else {
die('does not exist');
}
$html = render_content_page($array[1],$array[2]);
$slate = 'info_slate';
$reply_array = array(
'html' => $html,
'slate' => $slate
);
echo json_encode($reply_array);
break;
我调试了每个级别,直到调用json_encode()
为止。但是我在ajax中收到的数据对于html密钥来说是nul。这段代码本质上是另一个案例的复制和粘贴,只是调用render_content_page()
以外的函数,但是完全正常。
$ reply_array var_exports to:
array (
'html' => '<ol>
<li unit="quiz" identifier=""><img src="img/header/notifications.png"/>Fran�ois Vase Volute Krater</li>
</ol>',
'slate' => 'info_slate',
)
答案 0 :(得分:16)
我最初的想法是Fran�ois Vase Volute Krater
中的特殊字符,因为json_encode仅适用于UTF-8编码数据。
在JSON编码之前尝试使用UTF-8编码,如下所示:
json_encode(utf8_encode("Fran�ois Vase Volute Krater"));
答案 1 :(得分:5)
答案 2 :(得分:1)
作为documented,json_encode
期望其输入文本为UTF-8。最有可能的是,您的输入(ç
)不是UTF-8。
使用utf8_encode
(如果您当前正在使用ISO-8859-1)或mb_convert_encoding
(否则)将输入字符串转换为UTF-8。