我用于编写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()之后,用户看到: 这是一个代码字符:?这是一个文字:ñ