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

使用 json_encode对数组加密后,输出的汉字部分是空的,怎么回事了? 各位大侠们,有没有好的解决方案? 急救 解决办法 你原始的数据是gbk的,这是不能被 json_encode 所接受的 json_encode 只接受 utf-8 编码的数据,于是 gbk 汉字因不能识别而丢弃 只有少量
使用 json_encode对数组加密后,输出的汉字部分是空的,怎么回事了?
各位大侠们,有没有好的解决方案? 急救

解决办法

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

相关文档推荐

Difference between mt_rand() and rand()(mt_rand() 和 rand() 的区别)
Coalesce function for PHP?(PHP的合并函数?)
Fastest way to convert string to integer in PHP(在 PHP 中将字符串转换为整数的最快方法)
2 Column Mysql Date Range Search in PHP(PHP中的2列Mysql日期范围搜索)
mysql match against ~ example(mysql 匹配 ~ 示例)
How-to: Ranking Search Results(操作方法:对搜索结果进行排名)