记一次从终端到服务端编码都统一但还是出现中文乱码的问题。
情景是这样的我用Navicat的窗口界面添加了中文的数据,但php读取出来后出现了乱码。
首先先排除客户端这边,各种编码定义都已经完善:
头声明:<meta charset="UTF-8">
php头:header("Content-Type: text/html; charset=UTF-8");
语句前的设置:
mysql_query("set names 'utf8' ");
mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");
排除完后继续数据写入这边Navicat编码的层层排除
连接属性:
数据库属性:
表编码:
字段编码:
查一遍连接等设置:
mysql的配置、Apache的配置、php的配置,各种看,
各种查完之后还是乱码。
最后的检查插入过程是否有问题:
通过php和navicat的sql语句插入中文,之后php读取显示正常。
再在navicat中用sql语句读取,发现用窗口界面录入的数据是乱码,sql插入的数据正常。
这是navicat的问题,以后不要用Navicat窗口界面(点击一个表直接显示的那个界面)修改添加数据。
但可以在Navicat查询出的数据界面修改,
先修改编码,用sql语句查询,查询出来后,再在界面中增删改查就没问题了。