mysql中latin1编码中文转utf8

Posted 新际航

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中latin1编码中文转utf8相关的知识,希望对你有一定的参考价值。

mysql中,对应的表字段编码通常默认为lartin1编码,在本地客户端显示的时候看着是乱码,但是通过mysql -u -p -h命令登录后,select查询到数据是正常的,通过jdbc或者php等去取回来的中文是乱码;

 

也就是中文在mysql中是lartin1,到我们自己本地或者用navicat等select却是乱码,使用mysql内置函数来转换一下

 

SELECT convert(unhex(hex(convert(name using latin1))) using utf8) as name FROM test  

 

上面语句意思为,在表test中,字段name编码为lartin1查询后结果转换为utf8编码结果

 

ps(吐槽一下!!!):看到很多人还要通过jdbc查询的时候又要set names lartin1,还要new String(rs.getString("SampleColumnName").getBytes("ISO-8859-1"), "UTF-8"),扯了一大堆,最后结果还是乱码,有毛用,一个mysql内置函数就搞定了,理解起来也简单

 

以上是关于mysql中latin1编码中文转utf8的主要内容,如果未能解决你的问题,请参考以下文章

不同子系统采用不同MySQL编码LATIN1和UTF8的兼容

更改Mysql5.7的默认编码为utf8解决database为latin1无法修改问题

mysql不支持中文,把所有编码格式改成gbk,重新登陆后又变回了latin1,这是为啥

mysql server characterset 显示为latin1怎么改成utf8?

Mac下更改Mysql5.7的默认编码为utf8

用dbvis 工具连接mysql 数据库 怎么设置编码格式