Heim > Backend-Entwicklung > PHP-Tutorial > php json_encode总是返回unicode字符 "u."问题 解决

php json_encode总是返回unicode字符 "u."问题 解决

WBOY
Freigeben: 2016-06-23 13:36:56
Original
957 Leute haben es durchsucht

最近遇上了一件怪事,前两天写的好好的代码,今天再运行就乱码了。查了一下,不是一般意义的乱码,而是返回的unicode编码的字符。

如汉字:登录失败,经过json_encode之后返回变成:"\u767b\u5f55\u5931\u8d25"

实在气死杂家,找了一通,发现这是个普遍问题,最终解决方法如下:

正常调用json_encode($arr),在echo之间,将这个json数据通过以下函数处理下:

public static function JSON($str){
$json = json_encode($str);
return preg_replace("#\\\u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))",$json);
}

这样就再也不乱码了。对于高版本php,可以直接加个参数,但对低版本无效,所以只能这样。完整代码如下:

<?phpclass util{			public static function JSON($str){		$json = json_encode($str);		return preg_replace("#\\\u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))",$json);	}	}?>
Nach dem Login kopieren

调用示例:

		// echo "登录失败";			$arr = array ();			$arr ['code'] = - 1;			$arr ['message'] = "登录失败";			echo $arr ['message'];			$arr ['data'] = "";						return util::JSON ( $arr );
Nach dem Login kopieren

参考: http://stackoverflow.com/questions/6771938/any-way-to-return-php-json-encode-with-encode-utf-8-and-not-unicode

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage