äöü没有在json php中显示

时间:2014-12-15 20:48:05

标签: php json special-characters

当我将文本发布到$ 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);

2 个答案:

答案 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_errorjson_last_error_msg