MySQL字符集乱码

时间:2023-03-09 02:14:07
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,此时,应该已经解决了问题。

只不过,可能重启后,字符集会不会还原,这是个未知,反正我的是不会^_^