Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符编码php-javascript_Javascript_Php_Json_Utf - Fatal编程技术网

字符编码php-javascript

字符编码php-javascript,javascript,php,json,utf,Javascript,Php,Json,Utf,我得到了一个管理数据库中实体的php文件。我要做的是从数据库中检索一组字符串,并通过json_encode将其返回给javascript函数 问题在于,当php脚本检索到这些值时,重音字符会显示得很好 当我这样输出它时: echo "<pre>"; print_r($row); echo "</pre>"; 但是,当我想通过json_encode将数据返回到ajax调用时,我得到以下结果: function encode_items(&$item, $key)

我得到了一个管理数据库中实体的php文件。我要做的是从数据库中检索一组字符串,并通过json_encode将其返回给javascript函数

问题在于,当php脚本检索到这些值时,重音字符会显示得很好

当我这样输出它时:

echo "<pre>";
print_r($row);
echo "</pre>";
但是,当我想通过json_encode将数据返回到ajax调用时,我得到以下结果:

function encode_items(&$item, $key)
{
    $item = utf8_encode($item);
}

array_walk_recursive($stack, 'encode_items');
echo json_encode($stack);
在json_编码中输出数据之前,我要做的是:

echo json_encode($stack, JSON_UNESCAPED_UNICODE);
有没有关于如何正确编纂的想法??我曾经说过,如果在我的PHP echo中正确地显示它,那么在我的javascript ajax调用中它会显示得很好,对吗


谢谢

您正在为以下内容寻找
JSON\u UNESCAPED\u UNICODE

JSON\u UNESCAPED\u UNICODE
(整数)
对多字节Unicode字符进行逐字编码(默认值为转义为\uxxx)。 从PHP5.4.0开始提供


$stack
输入数组无关。顺便说一句,这些转义值是有效的JSON,没有必要避免它们。如果您不使用Unicode编码发送HTML,它们甚至会让您的生活更轻松。

JSON结果没有问题

PHP5.4之后,如果需要,可以使用的选项


我看不出JSON输出有什么问题?您的
JSON
编码正确,因为需要在
JSON
字符串中对特殊字符进行编码。如果使用
jQuery
html()
函数进行输出,则特殊字符将正确编码为其html等价物。例如:
$(“#container”).html(json_字符串)
应该使用
echo htmlspecialchars(print_r($row,true))btwFine,我将结果打印为html内容,它可以很好地显示重音字符。谢谢你是的!比你领先5秒:-)
function encode_items(&$item, $key)
{
    $item = utf8_encode($item);
}

array_walk_recursive($stack, 'encode_items');
echo json_encode($stack);
echo json_encode($stack, JSON_UNESCAPED_UNICODE);