问题:
mysql表示utf8编码,写入的中文是Latin1编码,即读取中文之前需要先执行set names latin1,中文显示才不乱码。
java读取这种情形的中文怎么保证不乱码?
1、jdbc-url=jdbc:mysql://{ip}:3306/spring?characterEncoding=utf8
说明:jdbc的url字符集指定为utf8
2、在执行sql查询前先执行
set names latin1
如果用jdbctemplate,代码如下:
jdbcTemplate.execute("set names latin1");
3、获取的数据转换
ResultSet rs;
byte[] bval = rs.getBytes(i);//获取字段对应比特数组
String val = "";
val = new String(bval, "UTF-8");//将比特数组转换为utf8字符串
val中含有中文将会正常显示。
完毕~