• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php json_encode加密后,有的汉字显示不出来 急解决方法

php 搞代码 4年前 (2022-01-24) 26次浏览 已收录 0个评论

php json_encode加密后,有的汉字显示不出来 急
$e=mb_detect_encoding($str) 输出个字符编码类型,怎么会这样?
ASCII————-
UTF-8————-,王五
UTF-8————-,赵六
ASCII————-2014-07-16
————-电子商务品牌市场部
————-工作简报
UTF-8————-未存档
UTF-8————-未发送
————-经理办公室
ASCII————-2
UTF-8————-以后的文号只须选择文号头后系统将自动生成
UTF-8————-我 是 谁
ASCII————-11
ASCII————-2014
ASCII————-
————-测试部门
ASCII————-
UTF-8————-李刚,郭美美,赵智勇,张田欣
ASCII————-Admin
————-工作简报的总第期数和当年期数都可以由系统自动生成,生成后在发文表列表中可以查看
UTF-8————-研发中心
————-集团领导
————-急
UTF-8———-¥本文来源gaodai#ma#com搞@@代~&码网^搞gaodaima代码—普通
ASCII————-
ASCII————-

使用 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');

就完事大吉了


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php json_encode加密后,有的汉字显示不出来 急解决方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址