带有特殊字符(如 é)的 json

2022-08-30 21:12:33

我正在开发一个依赖选择脚本,使用jQuery,PHP和JSON作为响应。

一切都很顺利,除了使用像法语字符这样的特殊字符(é , è , à...)

如果我像 (é , è , à)(在这里,我在&符号和单词的其余部分之间使用空格以防止在我的问题中自动编码)它有效,但是当使用jquery呈现时,字符不会转换为它们应该看起来像的样子(é...),而是按原样显示(é)

如果我像(é)一样写它们并且不预先编码它们,则不会显示此数组条目中的完整值。

我在这里该怎么办?

谢谢。


答案 1

如果我像(é)一样写它们并且不预先编码它们,则不会显示此数组条目中的完整值。

我在这里该怎么办?

在 JSON 中,您不对值进行 HTML 编码。您按字面意思 (é) 发送它们并正确设置内容类型:

header('Content-Type: application/json; Charset=UTF-8');

当然,声明数据所处的编码。


答案 2

这对我有用,希望它适用于遇到类似问题的任何其他人。

$title = 'é';
$title = mb_convert_encoding($title, "UTF-8", "HTML-ENTITIES");

header('Content-Type: application/json; Charset="UTF-8"');
echo json_encode(array('title' => $title));

mb_convert_encoding函数获取一个值,并将其从(在本例中为)HTML-ENTITIES 转换为 UTF-8。

有关函数的详细信息,请参阅此处 http://php.net/manual/en/function.mb-convert-encoding.php


推荐