JSON使用文本和代码特殊字符编码

时间:2015-12-23 20:34:24

标签: javascript php jquery json

我用于编写php json_encode()函数的一些文本,并使用jquery getJSON()进行解码。

它的效果很好,但有时文本的文本和代码字符如“这是一个代码字符:%F1,这是一个文本的字符:ñ”。文本看起来应该是这样,我的意思是“%F1”不应该显示为“ñ”。

由于“%F1”,json_encode()函数返回空值,如果我使用iconv(),“%F1”看起来正确,但将“ñ”转换为“Ô,如果我使用mb_convert_encoding ()它将“%F1”转换为“?”。

如何规范化文本以获得正确的可视化效果?

更新

有一些例子,用户应该看到文本“这是一个代码字符:%F1,这是一个文本的:ñ”。 $ a变量包含字符串“this is a code char:%F1,这是一个文本的:ñ”来自DB:

PHP:

echo json_encode(array("content" => $a));

在这种情况下,json_encode()返回null,因为“%F1”(如果我删除%F1,“ñ”字符在getJSON()之后正确查找)

现在使用iconv():

PHP:

$a = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($a));
echo json_encode(array("content" => $a));

在jquery getJSON()之后,用户看到: 这是一个代码char:%F1,这是一个文本的:ñ

使用mb_convert_encoding():

PHP:

$a = mb_convert_encoding($a, "UTF-8", "auto");
echo json_encode(array("content" => $a));

在jquery getJSON()之后,用户看到: 这是一个代码字符:?这是一个文字:ñ

0 个答案:

没有答案