2 peterchen149 peterchen149 于 2013.11.22 18:22 提问

向mysql写入中文数据时不显示或显示乱码

今天写php,向mysql插入数据时,无法显示中文或显示乱码,怎么解决?
已经设定了字符集:
mysql_query('SET NAMES utf8');
sql语句:
mysql_query("INSERT INTO user (username) VALUES ('庞统')");

数据库表结构:
username varchar(20) utf8_general_ci

而且mysql的配置文件my.ini里我也改了,在
[mysql] [mysqld]后面加上了
default-character-set=utf8

请问如何解决?
补充一点:
把mysql的编码换成gbk,
mysql_query('SET NAMES gbk');这条也改成gbk;
则在phpMyadmin里可以显示中文了,但在mysql客户端还是不能显示

3个回答

franzhong
franzhong   2013.11.23 19:11

乱码是编码不统一造成的,看你的测试应该有一处是默认是gbk了,
会不会是浏览器?可测试一下
编码扯到需注意的地方有:
数据库编码、表、字段、
mysql连接(set names)、
文件编码、header/浏览器编码
6处需检查
建议你把这个sql语句单独输出一下看执行了啥样最终语句
再copy到phpmyadmin的sql语句里执行一下就明白了

fylsle
fylsle   2013.11.26 19:16

检查 mysql 连接字符串 加上 characterEncoding=utf8
//localhost:3306/{dbname}?characterEncoding=utf8
检查你的保存php页面的编码是否是 utf8

fbcha
fbcha   2014.02.04 17:48

页面使用统一的编码方式,比如用utf-8的时候都用utf-8,然后在数据写入数据库的时候先做编码转换,然后写入数据库,就可以了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!