评论

收藏

[MySQL] 解决Mysql字符编码问题

数据库 数据库 发布于:2021-07-04 11:39 | 阅读数:239 | 评论:0

对于大家熟知的mysql数据库,是不是中文字符编码的问题一直困绕着你?

本文以mysql5.5举例,安装方法在此虑过,只说一点:为了程序顺利插入数据到数据库而不出现字符问题,一般都设置mysql编码为utf8编码。然而在命令行模式往往会出现字符编码问题:

1)如在命令行模式下,直接插入中文,插入失败(如图一)


DSC0000.png

图一(不正确的字符串值)


2)用程序(如Java)插入数据成功,使用navicate工具显示是中文,即便是mysql Workbench工具查询依然是中文(如图二),在命令行模式查询的结果却显示是乱码(如图三)


DSC0001.png

图二(显示中文)


DSC0002.png

图三(有数据,却显示乱码)


关于解决方法参看以下链接:

花飞蝴蝶” 博客,http://jinyabo.blog.51cto.com/3411101/1186030


但是有一个问题,如图四

声明:因为已经进入,所以无需再次进行验证

DSC0003.png

图四(设置失败)


这时候,只好到my.ini文件查看,关键看两处(如图五)

(1)default-character-set=utf8

(默认编码设置,一般应与操作系统编码一致)

(修改成default-character-set=gbkgb18030不行)

(2)character-set-server=utf8(服务端编码设置)

(默认不需要改,但如果不是utf8,建议改成utf8

DSC0004.png

图五(编码)


然后再次进入命令行模式,执行查询(如图六)

DSC0005.png

图六(查询成功)


心得:可以把default-character-set理解成客户端,character-set-server理解成服务端。客户端与服务端编码一致当然是最佳拍档!总之要多观察,多研究配置文件。这类问题不一定每次都见到,而一旦出现,便是让人很挠头。比如我之前每次都是utf8安装,用了三年,中文字符插入也没问题,唯独这次,换成64位操作系统后,出现了这个问题。问题出现,可以google,可以百度,然而不一定是你想要的答案,那就自己研究吧,肯定可以解决!


感谢:花飞蝴蝶的《关于MySQL数据库乱码的问题总结》文章


  
关注下面的标签,发现更多相似文章