mysql中latin1编码中文转utf8

时间:2024-12-05 12:03:02

在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内置函数就搞定了,理解起来也简单