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);
}
}