mysql JDBC exception 异常信息中文乱码问题

mysql jdbc 连接数据库,当产生SQL异常,包含中文信息时,异常信息中文乱码。mysql驱动版本 

<version>5.1.40</version>

产生这个提问题的主要原因是驱动对异常处理信息有BUG(MYSQL,JVM JAVA文件等所有的编码都一一致),MYSQL驱动在处理编码时使用CharsetMapping类获取编码,MYSQL语言为ENGLISH,自动从:

Map<String, String> tempMap = new HashMap<String, String>();
tempMap.put("czech", "latin2");
tempMap.put("danish", "latin1");
tempMap.put("dutch", "latin1");
tempMap.put("english", "latin1");
tempMap.put("estonian", "latin7");
tempMap.put("french", "latin1");
tempMap.put("german", "latin1");
tempMap.put("greek", "greek");
tempMap.put("hungarian", "latin2");
tempMap.put("italian", "latin1");
tempMap.put("japanese", "ujis");
tempMap.put("japanese-sjis", "sjis");
tempMap.put("korean", "euckr");
tempMap.put("norwegian", "latin1");
tempMap.put("norwegian-ny", "latin1");
tempMap.put("polish", "latin2");
tempMap.put("portuguese", "latin1");
tempMap.put("romanian", "latin2");
tempMap.put("russian", "koi8r");
tempMap.put("serbian", "cp1250");
tempMap.put("slovak", "latin2");
tempMap.put("spanish", "latin1");
tempMap.put("swedish", "latin1");
tempMap.put("ukrainian", "koi8u");
ERROR_MESSAGE_FILE_TO_MYSQL_CHARSET = Collections.unmodifiableMap(tempMap);

ERROR_MESSAGE_FILE_TO_MYSQL_CHARSET 中获取编码,获取后为latin1,就没有UTF8 或GBK所以报错,把ENGLISHI对应的latin1 修改为UTF-8解决。

 

转载于:https://my.oschina.net/u/593721/blog/823169

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值