How to solve the Chinese garbled code in php json_encode
Aug 15, 2020 am 09:18 AMphp encode中文乱码的解决办法:首先打开相应的PHP文件;然后使用正则语句“preg_replace("#\\\u([0-9a-f]{4})#ie","iconv('UCS-2BE', 'UTF-8'...)”将编码替换成中文即可。
推荐:《PHP视频教程》
本文列举3个方法,实现json_encode()后的string显示中文问题。
做接口时不需要,但存log时帮了大忙了。
在贴代码前,必须贴上官方param和return,链接:http://php.net/manual/zh/function.json-encode.php
参数
value
-
待编码的
value
,除了resource 类型之外,可以为任何数据类型该函数只能接受 UTF-8 编码的数据
options
由以下常量组成的二进制掩码:
JSON_HEX_QUOT
,JSON_HEX_TAG
,JSON_HEX_AMP
,JSON_HEX_APOS
,JSON_NUMERIC_CHECK
,JSON_PRETTY_PRINT
,JSON_UNESCAPED_SLASHES
,JSON_FORCE_OBJECT
,JSON_UNESCAPED_UNICODE
.
返回值
编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE
。
<?php // json_encode() 保持中文方法详解 $arr['city'] = '北京'; $arr['name'] = 'weilong'; // 直接输出 // Res: {"city":"\u5317\u4eac","name":"weilong"} echo json_encode($arr), "\n"; #### 1. 加参数,PHP版本>=5.4 // Res: {"city":"北京","name":"weilong"} echo json_encode($arr, JSON_UNESCAPED_UNICODE), "\n"; // php >= 5.4 #### 2. 正则替换,json_encode后,正则将编码替换成中文 // Res: {"city":"北京","name":"weilong"} echo preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", json_encode($arr)), "\n"; // PHP 5.5 /e修饰符被弃用 echo preg_replace_callback("/\\\u([0-9a-f]{4})/i", function($match) { // php >= 5.3 都可以 return json_decode("\"{$match[0]}\"", true); }, json_encode($arr)), "\n"; #### 3. urldecode()、urlencode()函数,不推荐 // Res1: null, Res2: {"city":"北京","name":"weilong"} echo urldecode(json_encode(urlencode($arr))), "\n"; $arr['city'] = urlencode($arr['city']); // urlencode()参数必须是string echo urldecode(json_encode($arr)), "\n"; // 另外注意json_decode()参数区别。 $arr['city'] = '北京'; $arr['name'] = 'weilong'; $str = json_encode($arr); $str2 = json_decode($str); $str3 = json_decode($str, true); print_r($str2); // object /* Res: stdClass Object ( [city] => 北京 [name] => weilong ) */ print_r($str3); // array /* Res: Array ( [city] => 北京 [name] => weilong ) */
The above is the detailed content of How to solve the Chinese garbled code in php json_encode. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian
