MySQL字符集乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL字符集乱码相关的知识,希望对你有一定的参考价值。
学数据库,最让人丧气的就是字符集的问题了,一旦出问题,就会有砸电脑的冲动,特别是在修改很多次字符集后依然不成功的时候!
我用的数据库软件是mysql 5.1.28。最初出问题的时候,是这样的:
情景一:每次输入(insert)命令,总是会报错,说某行某行有错,然后,我把那一行删了,再试,但是,依旧报错,只不过,提示的错误是另外的一行,直到我将语句中含有中文字符的命令全删了之后,完美通过了,没错,就是通过了;
情景二:可以插入中文字符,不报错,也没有warnings,每次用select选择表中的内容显示时,不报错,也没有warnings,但是,读出来的中文字符全变成了问号‘?‘;
这是我才发现问题,于是开始用老师教的alter来修改字符集,但是并没有什么效果。于是翻了一下书,找到一种方法,解决了这个问题。
首先,你在命令行中输入
show variables like ‘char%‘;
此条语句用于查询当前字符集编码。如果你发现其中出现下面的情况
character_set_database : latin1 character_set_results:latin1 character_set_system:Latin1 character_set_server:latin1
那么,接下来你就在命令行中输入以下命令
character_set_database:‘gbk‘ character_set_server:‘gbk‘ character_set_results:‘gbk‘ character_set_system:‘utf8‘
也可以将gbk改为utf8,此时,应该已经解决了问题。
只不过,可能重启后,字符集会不会还原,这是个未知,反正我的是不会^_^
以上是关于MySQL字符集乱码的主要内容,如果未能解决你的问题,请参考以下文章