中文乱码处理

01 输出中文乱码

02json_encode()转义成json入库,默认把中文转成unicode

03

二次开发的php文件或者html文件中.中文编码不是utf-8的,选择txt文本或者editplus打开,另存为utf-8.然后修改代码中设置的编码为utf-8.

编译的时候,先查看文本的编码.然后按照编码格式.来显示或执行

如果文本的编码为gb2312或者gbk.使用phpstrom打开有中文乱码.需要看右下角.是否以utf-8格式读取并显示

 ================日志写入数组,json_encode会把中文转成unicode,需要处理


function json_encode_ex($value)
{
if (version_compare(PHP_VERSION,'5.4.0','<'))
{
  $str = json_encode($value);
  $str = preg_replace_callback(
  "#\\\u([0-9a-f]{4})#i",
  function($matchs)
  {
    return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
    },
  $str
);
    return $str;
}
else
  {
    return json_encode($value, JSON_UNESCAPED_UNICODE);
  }
}

 

=========== mysql 中文乱码 cmd

查看编码格式是否为gbk. cmd面板默认为gbk格式显示.

show variables like '%char%';   //查看变量  模糊匹配 mysql中所有变量设置

set names gbk;   //设置客户端字符集 ,以gbk读取数据.返回给cmd面板

如果没有设置客户端编码为gbk. 搜索中文匹配是不会有结果的

 

 

============

header("Content-type:text/html;charset=utf-8");

echo '<pre>';

echo '<meta http-equiv="Content-type" content="text/html:charset=utf-8">';

var_dump($data);

 

 

===========json数据中文直接入库,无需转成unicode

function json_encode_ex($value)
{
if (version_compare(PHP_VERSION,'5.4.0','<'))  
{
$str = json_encode($value);
$str = preg_replace_callback(
  "#\\\u([0-9a-f]{4})#i",
function($matchs)
{
  return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
},
  $str
);
  return $str;
}
else
{
    return json_encode($value, JSON_UNESCAPED_UNICODE);
}
}

转载于:https://www.cnblogs.com/bj-tony/p/5558480.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值