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。
在操作数据库时发现自己写的库在控制台显示时出现了乱码:
通过 show varables like '%char%';
查看 mysql 为UTF-8编码;
:
通过使用 set names gbk; 将编码设置为 gbk;
则正常输出了!
使用 show varables like '%char%';
编码确实设置成了GBK;
简单的解决代码问题就已经搞定了,但是这种办法只能在本次使用控制台中有效 也就是说下次在打开的时候就会不能用了!还是会出现乱码!
下面在给大家一种:
最终发现my.ini里的2个character_set把client改成gbk,把server改成utf8就可以了。
这时控制台即使重启控制台也会识别中文的。
*其实乱码就是因为编码的问题 也就是说 不是真正的乱码而是设置的编码方式不正确造成的!