php使用json_encode gbk编码下汉字显示不出来怎么解决

使用 json_encode对数组加密后,输出的汉字部分是空的,怎么回事了? 各位大侠们,有没有好的解决方案? 急救 解决办法 你原始的数据是gbk的,这是不能被 json_encode 所接受的 json_encod
使用 json_encode对数组加密后,输出的汉字部分是空的,怎么回事了?
各位大侠们,有没有好的解决方案? 急救

解决办法

你原始的数据是gbk的,这是不能被 json_encode 所接受的
json_encode 只接受 utf-8 编码的数据,于是 gbk 汉字因不能识别而丢弃
只有少量的字符组合被错误的解释为 utf-8 双字节字符而被保留了下来,造成了你的疑惑不解,要是一个都不剩的话,反倒使事情明朗化了
所以如果你需要产生 json 的话需要做一下编码转换
array_walk_recursive($ar, function(&$s) { $s = iconv('gbk', 'utf-8', $s); });
如果数据是从 mysql 读取的,那么只需在读取前执行一次
mysql_query('set names utf8');
就完事大吉了,html5模板网整理,希望帮到大家
 
 
【网站声明】本站部分内容来源于互联网,旨在帮助大家更快的解决问题,如果有图片或者内容侵犯了您的权益,请联系我们删除处理,感谢您的支持!

相关文档推荐

php解决json gbk编码中文null问题的实例代码,具体代码如下,希望可以帮到需要的朋友: /** * gbk编码转utf-8 * @param unknown $data * @return multitype: */function gbk2utf8($data){ if(is_array($data)){ return ar
Laravel Eloquent Union query(Laravel Eloquent Union 查询)
Overwrite laravel 5 helper function(覆盖 Laravel 5 辅助函数)
laravel querybuilder how to use like in wherein function(laravel querybuilder 如何在 where 函数中使用 like)
The Response content must be a string or object implementing __toString(), quot;booleanquot; given after move to psql(响应内容必须是实现 __toString()、“boolean和“boolean的字符串或对象.移动到 psql 后给出) - IT屋-程
Roles with laravel 5, how to allow only admin access to some root(Laravel 5 的角色,如何只允许管理员访问某些根)