phpjson中文乱码,Json中文乱码,该怎么解决?

用户投稿 72 0

关于“php_json中文乱码”的问题,小编就整理了【2】个相关介绍“php_json中文乱码”的解答:

Json中文乱码,该怎么解决?

解决方法:

1、把所有的中文转为UTF-8编码(本身是utf8的话无须转)

$data="JSON中文";

$newData=iconv("GB2312","UTF-8//IGNORE",$data);

2、把中文的urlencode一下

$testJSON=array('name'=>'中文字符串','value'=>'test');

//echo json_encode($testJSON);

foreach ( $testJSON as $key => $value ) {

$testJSON[$key] = urlencode ( $value );

}

3、然后json_encode之后再urldecode一下转回来

$test_json_str = json_encode ($testJSON )

echo urldecode ($test_json_str);

查看输出结果为:

{“name”:”中文字符串”,”value”:”test”}

这样可以很好的解决中文JSON乱码问题。

为什么在页面中运行后,显示数据库中得文字都是乱码?

一般来说,乱码问题其实也就是编码不一致导致的。因此,要解决PHP中文乱码问题,解决步骤有如下几步:

1. 页面声明的编码 与 数据库内部编码 一致比如: 你的网页里设置 charset = gb2312,然而,你的数据库使用utf-8,那么,如果不进行iconv转换的话,显示出来可能就有问题。

2. 页面文件的编码 与 页面声明的编码 一致比如,你的网页文件为 test.php,该文件用 UTF-8B 格式保存,而如果你的网页里设置 charset = gb2312,那么可能显示也不正常。 从你的问题描述来看,“PHP中非数据库导出的部分 其中文显示正常 ”,据此可以确定页面文件编码与页面声明编码一致,那么,问题原因就在于:页面声明的编码 与 数据库内部编码 不一致造成的。你可以查看下,你的 数据库编码格式 与 网页定义的编码。

到此,以上就是小编对于“php_json中文乱码”的问题就介绍到这了,希望介绍关于“php_json中文乱码”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!