MySQL中文乱码问题总结

来源:互联网 发布:mac双系统开机选择切换 编辑:程序博客网 时间:2024/04/29 03:44

一、方案一

MySQL使用过程中最大的问题可能就是乱码问题了,以前以为只要按如下方案就能解决中文乱码问题。

1.数据库在建立时设置utf8字符集,utf8_general_ci排序规则。保证每张表存储的数据都是utf8格式的。

2.Java连接数据库时,url后边加上?useUnicode=true&characterEncoding=utf-8,例如:url = " jdbc:mysql://localhost:3306/spring_db?useUnicode=true&characterEncoding=utf-8 ";

        按照以前的理解,只要JSP以及HTML页面每个页面用UTF8编码,Servlet接收和传输值都用UTF8编码,跟数据库的编码对应就一定能解决中文乱码问题了。然而,昨天在向数据库插入繁体中文时出现了乱码,查找了很多资料,最终尝试解决的方案二。

二、方案二

       首先,确保程序编码没问题,数据确实是以utf8编码传输的,数据库编码也是对应的utf8。cmd进入数据库,使用命令:mysql> show variables like 'character%';查询所有编码。

       此图,是最终修改后的完全与程序对应的。修改方法为set names  utf8,但此种方法只能当前有效,为了确保一劳永逸,可以修改MySQL安装目录下的my.ini配置文件,免安装办的MySQL此文件名字初始可能为my-default.ini,需修改为my.ini配置生效。

       在配置文件中添加如下配置:

[client]

default-character-set=utf8
 port=3306

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

character_set_filesystem=utf8

修改完后重启MySQL服务就可以了。本人在重启服务时因为my.ini配置文件有一个地方写错了,导致启动失败,错误提示如下:

本地计算机 上的mysql服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。

出现此错误一般在MySQL第一次安装配置后,配置不当引起的,并且在.err的log中没有任何提示。运行mysqld --initialize执行初始化,可以看到如下提示:


因为配置文件中的server_id项不识别,将my.ini中此项删除或注释掉,如下所示:

最后重启MySQL服务即可。

已经成功进入MySQL服务。

1 0