java使用utf8操作jdbc时数据库是latin1编码时乱码解决

  • java使用utf8操作jdbc时数据库是latin1编码时乱码解决已关闭评论
  • 118 views
  • A+
所属分类:MySql

1,正确配置jdbc的url

characterEncoding=Cp1252意义:

jdbc会在执行SQL之前将sql语句字符串转换成对应的characterEncoding编码字节

为什么编码配置是Cp1252呢,可以看下jdbc官方文档:

able 5.3 MySQL to Java Encoding Name Translations

MySQL Character Set NameJava-Style Character Encoding Name
asciiUS-ASCII
big5Big5
gbkGBK
sjisSJIS (or Cp932 or MS932 for MySQL Server < 4.1.11)
cp932Cp932 or MS932 (MySQL Server > 4.1.11)
gb2312EUC_CN
ujisEUC_JP
euckrEUC_KR
latin1Cp1252
latin2ISO8859_2
greekISO8859_7
hebrewISO8859_8
cp866Cp866
tis620TIS620
cp1250Cp1250
cp1251Cp1251
cp1257Cp1257
macromanMacRoman
macceMacCentralEurope
utf8UTF-8
ucs2UnicodeBig

这个是java和mysql的编码对照表。

2,处理正确的字符串编码

    java中不需要执行SET NAMES UTF8 这种语句.

    在代码中字符串应该是使用GBK而非Cp1252.

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin