MySql数据库 汉字 ? 乱码解决 详细步骤 问题已解决

来源:互联网 发布:java 运行lua 编辑:程序博客网 时间:2024/06/05 11:15

 

详细解决步骤

 

版本:MySQL Server 5.1

 

1.停止mysql服务。

windows如何重启mysql

开始->运行->cmd

停止:net stop mysql

启动:net start mysql

前提MYSQL已经安装为windows服务

2.修改mysql安装目录下的my.ini文件;

设置character-set 有关的值为 utf8 或gbk;

例如:

1. [client]

2. default-character-set=gbk

3. port=3306

4. [server]

5. default-character-set=gbk

6. port=3306

7. [mysql]

8. default-character-set=gbk

3.重启服务

开始->运行->cmd 

net start mysql

4.showvariables like 'char%'; 查看

 

http://blog.csdn.net/blpluto/article/details/5704733

 

MySQL插入显示汉字出现乱码问题的解决

分类:Mysql2010-06-30 15:241202人阅读评论(1)收藏举报

mysqlcharacter服务器serverdatabase数据库

前段时间使用vc+mysql做东西,中途发现一插入汉字的话就出现乱码,网上找了很多资料,像在连接字符串的地方设置字符集,发现都没有解决问题,后来研究了一下mysql字符集的结构,终于解决问题。

MySQL服务端不加任何参数启动时,如下面所示(下面中同样显示了我的mysql版本):

我的字符集配置中character_set_databasecharacter_set_serverutf8,这是由于我本身的Mysql配置文件my.ini中设置的为utf8的原因造成的:


此时,可以发现,写入的数据是乱码(我这个里面显示为空,但数据存在1行);

然后,更改服务器启动时的字符集,或是修改配置文件my.ini中的字符集


此时,可以发现原来写入的数据仍然不能正常显示:

然后,插入汉字字符,显示仍然为乱码:

通过如上测试可以发现,如果只在客户端设置character_set_results那么不管服务器端是什么字符集时建立、插入汉字的表都显示不正确。如果再设定character_set_client,仍然不能影响由于设置character_set_results所产生的影响。
设置character_set_results

设置character_set_client

然后,如果再设定character_set_connection,不会影响已经建立和插入的表,在新建立、插入汉字的表就能正确显示
原有表不发生变化

新建插入表和汉字字符,显示正常:

我们可以查看一下此时各个表的表结构及其他们的字符集:

总结一下,如果你的插入或是显示字符出现乱码,那么多半是由于你的数据库字符集出现了问题。如果要想正确显示汉字,必须同时设定character_set_clientcharacter_set_connection参数和服务器端指定字符集保持一致,才能正确插入、显示。

如果只是要显示以前带字符集正确插入汉字的表,可以只在客户端指定character_set_results就够了。

附可以正确显示汉字字符的的mysql字符集配置供参考:

[cpp:firstline[1]]viewplaincopyprint?

1. [client]

2. default-character-set=gbk

3. port=3306

4. [server]

5. default-character-set=gbk

6. port=3306

7. [mysql]

8. default-character-set=gbk

9. [mysqld]

10.port=3306

11.basedir=C:/ProgramFiles/MySQL/mysql/

12.datadir=C:/ProgramFiles/MySQL/mysql/data/

13.default-character-set=gbk

14.default-storage-engine=INNODB

 

原创粉丝点击