【发布时间】:2014-07-24 21:25:24
【问题描述】:
我有一个管理数据库中实体的 php 文件。我想要做的是从数据库中检索一组字符串并通过 json_encode 将其返回给 javascript 函数。
问题是当 php 脚本检索值时,重音字符显示得很好。
当我这样输出时:
echo "<pre>";
print_r($row);
echo "</pre>";
我明白了:
Array
(
[0] => 1
[1] => Que és la bolsa de trabajo de la FIB?
)
但是当我想通过 json_encode 将数据返回给 ajax 调用时,我得到了这个:
["1","Que \u00e9s la bolsa de trabajo de la FIB?"]
我在 json_encode 中输出数据之前要做的是:
function encode_items(&$item, $key)
{
$item = utf8_encode($item);
}
array_walk_recursive($stack, 'encode_items');
echo json_encode($stack);
关于如何正确编码的任何想法?我假设如果在我的 PHP 回声中正确显示它会在我的 javascript ajax 调用中显示正常,对吗?
谢谢
【问题讨论】:
-
我看不出那个 JSON 输出有什么问题?
-
您的
JSON编码正确,因为特殊字符需要在JSON字符串中编码。如果您使用jQueryhtml()函数进行输出,则特殊字符将被正确编码为它们的 html 等效项。例如:$("#container").html(json_string); -
你应该使用
echo htmlspecialchars(print_r($row, true));btw -
很好,我将结果打印为 html 内容,它可以很好地显示重音字符。谢谢大家
标签: javascript php json utf