json有像é这样的特殊字符

med*_*edk 18 php jquery json htmlspecialchars

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

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

如果我像(é,è,à)那样对它们进行预编码(这里我在&符号之间使用空格以防止在我的问题中自动编码)它可以工作,但是当用jquery渲染字符时没有转换成他们应该看起来的样子(é...),而是按原样显示(é)

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

我该怎么办?

谢谢.

Tom*_*lak 8

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

我该怎么办?

在JSON中,您不对HTML进行编码.您按字面意思(é)发送它们并正确设置Content-Type:

header('Content-Type: application/json; Charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)

当然,声明数据所在的编码.


小智 6

就像第一个anwser一样

你使用数据库吗?如果是,请确保声明数据库表UFT8如何声明HTML页面?UTF-8是PHP脚本文件中的字符串?如果是,请确保该文件具有UTF-8文件格式

你也可以使用utf8_encode(发送到HTML)和utf8_decode(接收)但不是正确的方式


rha*_*vey 6

这对我有用,希望它对任何遇到类似问题的人都有效.

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

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

mb_convert_encoding函数接受一个值并将其从(在本例中)HTML-ENTITIES转换为UTF-8.

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