Json包含特殊字符,如é


json with special characters like é

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

一切都很顺利,除了使用特殊字符,如法语字符(, è, …)

如果我像(é,, egrave;, é)(这里我在&和其他单词之间使用空格,以防止在我的问题中自动编码)它的工作原理,但当用jquery渲染时,字符不会转换成它们应该看起来像(;;eacute;),而是显示为(é)

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

我该怎么做?

谢谢。

如果我像()那样写它们,并且不预先编码它们的完整值

我该怎么做?

在JSON中不使用html编码值。按字面意思发送它们()并正确设置set Content-Type:

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

当然要声明数据的编码

这对我来说很有效,希望它能对其他遇到类似问题的人起作用。

$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

就像第一个答案

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

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