当我将文本发布到$ text1或$ text2时,json_encode($ response);给我null。当我回显我的输入文本时,它会返回正确的值öüä...我能做什么,所以我的json_encode echo也返回值äüö而不是null
$response["test"] = array();
while ($row = $stmt->fetch()) {
// temp user array
$test= array();
$test["text1"] = $text1;
$test["text2"] = $text2;
+
echo $text1;
array_push($response["test"], $news);
echo $response;
}
$response["success"] = 1;
echo json_encode($response);
答案 0 :(得分:0)
你在json_encode()中抛出的所有内容实际上都必须是可编码的,因为字符串只有在它们是有效的UTF-8编码时才会出现。它们仍然不会在输出中显示为普通的变音符号,因为还有一个额外的标志可以防止非ASCII字母的转义。
注意: *实际的PHP版本很重要,功能在5.3,5.4和5.5之间变化。 *有一个函数可以检索与编码相关的错误信息,只需阅读文档以熟悉API。
答案 1 :(得分:0)
echo json_encode('ä ö ü');
产量
"\u00e4 \u00f6 \u00fc"
这些只是这些字符的转义版本。当你打印出来时它应该看起来很好。
然而,您的代码示例并没有多大意义。 $news
,$text1
和$text2
在哪里定义?为什么循环中间有一个随机+
?缩进是怎么回事? var_dump($response)
吐出什么?如果您的响应数组中存在乱码,那么这可能就是您返回null的原因。
另外,如果您使用> = 5.5,请检查json_last_error或json_last_error_msg