分享mysql中文乱码的解决办法
修改mysql配置解决乱码 首先: 用show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置 如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8, 修改方法如下: 用记事本或UitraEdit打开mysql数据库安装目录下的my.ini文件打开, 然后Ctrl+F搜索default-character-set,将后面的字符集修改为UTF8,注意要修改两个地方,一个事客户端的,一个是服务端的。 然后保存,重启mysql服务、、进去继续用show variables like “%colla%”;show varables like “%char%”;着两条语句查询一下字符集 数据表和连接部分的编码设置 设置数据库和数据表编码 要解决乱码问题,首先必须弄清楚数据库和数据表用什么编码。如果没有指明,将是默认的latin1。
其中后面的 TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;就是指定数据库的字符集,COLLATE (校勘),让mysql同时支持多种编码的数据库。 当然也可以通过如下指令修改数据库数据表的字符集:
前面已经设置了服务器、数据库和数据表的编码,那么数据库中的编码便都是gbk,中文可以存储进去。
设置连接编码 设置了服务器、数据库和数据表部分的编码,必须设置连接编码。连接编码设置如下:
设置好连接编码,下面便可以成功插入中文了:
其实,上面设置连接编码的三条命令可以简化为一条:
设置好了连接编码后,在select查询时,也能正确显示中文:
查询mysql中文记录乱码问题 我们这里以gb2312编码乱码为实例来介绍 如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:
附:旧数据升级办法 原来的表:old_table (default charset=latin1),新表:new_table(defaultcharset=utf8)。 第一步:导出旧数据
第二步:转换编码
在这里,假定原来的数据默认是gb2312编码。 第三步:导入 修改old.sql,增加一条sql语句: "SET NAMES utf8;",保存。
大功告成!! mysql导入数据乱码解决 出现乱码语句:mysql -hlocalhost -uroot -proot test 正确的语句:mysql -hlocalhost -uroot -proot test 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,例如下面的代码: 那么导入数据的时候也要使用--default-character-set=utf8: 这样统一编码就解决了mysql数据迁移中的乱码问题了 |