解决mysql命令行的字符编码问题

mysql命令行的字符编码问题是很常见的,也是比较麻烦的问题,但其实解决的方法比较简单,只需要知道哪些地方需要设置编码,并把这些编码设置成统一的就行了,比如:在使用mysql的命令行工具时,就需要设置命令行工具的字符编码与数据库的编码保持一致。

查看和设置数据库的字符编码

首先需要知道数据库的编码是怎么样的,可以使用下的命令,效果如下图:

show variables like ’character_set_%’;

查看数据库的编码

查看数据库的编码

除了charaacter_set_filesystem以外,其他的最好保持一致。可以看到我的数据库的字符编码设置都是utf8的。

这里的设置正确以后,就需要保证客户端的编码和数据库的编码一致,这样客户端才能正常显示数据库中的中文数据,数据库才能正确的识别客户端发来的带有中文的查询语句。

如果你的编码设置不一致,请使用类似下面的语句来设置编码:

set character_set_client=gb2312; // 客户端编码方式
set character_set_connection= gb2312; // 建立连接使用的编码
set character_set_database= gb2312; // 数据库的编码
set character_set_results= gb2312; // 结果集的编码
set character_set_server= gb2312; // 数据库服务器的编码

下面图文解释如何设置命令行工具的字符编码:

secureCRT的字符编码设置

在一个连接上右键,选择“属性”,如下图设置编码:

 

设置secureCRT的字符编码

设置secureCRT的字符编码

xshell的字符编码设置

如果你使用的是xshell作为你的命令行工具,那么你可以这样设置,在一个会话上,右键点击“属性”,然后按照如下设置你数据库对应的字符编码即可,我的数据库是用utf8,所以我设置了utf8:

 

xshell的字符编码设置

xshell的字符编码设置

Reference

原创文章:解决mysql命令行的字符编码问题,转载请注明:转载自戎码一生

Post Footer automatically generated by wp-posturl plugin for wordpress.