问题描述
mysql的字符集该怎么配置?我这只要在sql里出现的中文(比如case语句里中文)到客户端都是乱码,参数是中文的也不能解析,而从数据库里取出来的中文是正常的,我该修改什么配置才能正常呢?
解决方案
看数据库各级别字符集支持 mysql> SHOW VARIABLES LIKE ‘character_set_%’;mysql> SHOW VARIABLES LIKE ‘collation_%’;所有级别默认设定为UTF-8,将所有级别的字符集设定为gb2312。set character_set_client = gb2312set character_set_server = gb2312set character_set_connection = gb2312 set character_set_results = gb2312 修改my.ini文件里的 default-character-set=gb2312 或者在命令行输入mysqld --default-character-set=latin1
解决方案二:
Mysql通过客户端发送到控制台展示之前是utf8,但是console是使用系统的默认编码(gbk),所以在中文的时候发生了乱码显示,但是不影响程序操作,只是显示的时候有问题。 如何解决了? 方法一:(只对当前窗口有用,推荐使用) 输入:set names gbk 方法二:将控制台展示编码改成utf8(对所有的窗口,不推荐)1、打开CMD.exe命令行窗口 2、通过 chcp命令改变代码页,UTF-8的代码页为65001 F:trash>chcp 65001执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。 3、修改窗口属性,改变字体 在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。 4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。