我使用JSON将数组从PHP发送到Javascript。该数组正在从数据库获取数据。我用JSON和外来字符搜索了多个关于问题的主题,每个人都说要解决这个问题,你必须将编码设置为utf-8。我认为我做到了,但它不能帮助我。所以我运行测试看看有什么问题。为了简化和简单,我尝试将波兰语字符的字符串传递给json_encode()函数。所以我创建了index.php文件。在我的文字编辑,我选择UTF-8编码的选项没有BOM,我开始代码:JSON +波兰语字符
<?php
header('Content-Type: text/html; charset=utf-8');
$data = "polish characters: ążśęłóćźć";
$jsonData = json_encode($data);
echo mb_detect_encoding($data) . "<br />;
echo $jsonData;
?>
结果是:
UTF-8
"polish characters : \u0105\u017c\u015b\u0119\u0142\u00f3\u0107\u017a\u0107"
我还是无法输出润色人物。我不知道什么是错的?请帮助:)
你从哪里看到这个输出?将JSON数据直接回传到HTML页面并期望它以有意义的方式渲染是没有意义的。它可能是那里的JavaScript脚本的一部分,但你也必须以某种方式处理它。 – Bruno
你在你的php中有一个错字。 – Daedalus
为什么在输出JSON时将标题设置为text/html?如果你没有JSON编码字符串(或者甚至编码它然后解码它),那么将显示波兰语字符。或者,如果您希望将数据输出为JSON,则UTF-8编码(\ u0105)将被保留,并且可以通过读取它的任何代码进行翻译。 –