MySQL数据库控制台乱码问题 联想

时间:2022-09-13 22:31:07

 MySQL中涉及的几个字符集

character-set-server/default-character-set:服务器字符集,默认情况下所采用的。
character-set-database:数据库字符集。
character-set-table:数据库表字符集。
优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。
character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。
character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。
在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。

要处理中文,则可以将character-set-server和character-set-client均设置为GB2312,如果要同时处理多国语言,则设置为UTF8。

在操作数据库时发现自己写的库在控制台显示时出现了乱码:

MySQL数据库控制台乱码问题 联想

通过 show varables like '%char%';

查看 mysql 为UTF-8编码;

MySQL数据库控制台乱码问题 联想

通过使用 set names gbk; 将编码设置为 gbk;

MySQL数据库控制台乱码问题 联想

 

则正常输出了!

MySQL数据库控制台乱码问题 联想

使用 show varables like '%char%';

MySQL数据库控制台乱码问题 联想

编码确实设置成了GBK;

简单的解决代码问题就已经搞定了,但是这种办法只能在本次使用控制台中有效 也就是说下次在打开的时候就会不能用了!还是会出现乱码!

下面在给大家一种:

最终发现my.ini里的2个character_set把client改成gbk,把server改成utf8就可以了。

这时控制台即使重启控制台也会识别中文的。

 

*其实乱码就是因为编码的问题 也就是说 不是真正的乱码而是设置的编码方式不正确造成的!