JSON + 波兰语字符


JSON + Polish characters

我正在使用JSON将数组从PHP发送到Javascript。数组正在从数据库中获取数据。我已经搜索了有关JSON和外来字符问题的多个主题,每个人都说要解决问题,您必须将编码设置为utf-8。我认为我已经做到了,但它对我没有帮助。所以我运行测试看看有什么问题。为了使它变得简单易行,我尝试将带有波兰字符的字符串传递给 json_encode() 函数。所以我创建了索引.php文件。在我的文本编辑器中,我选择了选项以 UTF-8 编码而不带 BOM,我开始编码:

<?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"

我仍然无法输出波兰字符。我不知道怎么了?请帮忙:)

尝试执行以下操作:

echo json_decode(json_encode($data));

您应该看到波兰字符显示得很好。

应用程序不应直接向最终用户显示 JSON,而应首先将其解析为更人性化的格式。如果您遵循该规则,json_encode应该不会给您带来任何问题,因为您将始终将其解码并解析为任何合适的格式。