PHP 解决mysql结果集转json后中文乱码

做了一个ajax的站,php后台处理完了数据库后,需要把结果以json数据的方式发到前端由js使用,编程这东西,编码总是会莫名其妙造成影响…

//$result是一个mysql查询的结果集
while($row = mysql_fetch_array($result)){
	foreach ( $row as $key => $value ) {  
		$row[$key] = urlencode ( $value );
	}  
	$urlencode_result[$i++]=$row;
}
$json = urldecode(json_encode($urlencode_result));

以上代码,首先把结果集中的每个值都urlencode来解决可能出现的编码问题,然后json_encode,把已经urlencode处理过的转成json数据,最后把json数据中被urlencode的数据恢复.

原理就是PHP的json_encode会把中文转成乱码,但是在json_encode前先urlencode,这样就没有中文了,转为json后没有问题,转换完,要用的时候在urldecode恢复中文数据.

你可能还需要看看PHP读取MYSQL数据后中文乱码的解决方法

发布者

下弦 古月

有时候我们以为爱可以改变一切,但有些东西是无法改变的,就像那些溶入了生命的颜色。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注