现在遇到这样的情况:
select name from table
这里的name中文正常显示,但如果我使用mysql的AES_ENCRYPT函数对name加密后,然后再解密读起来,name就会乱码
select AES_DECRYPT(UNHEX(name),'123456') as name from table
这样会乱码
如果我使用jdbc,用 rs.getString("name")也乱码,但是用
new String(rs.getBytes("name"),"gbk") 这样就不会乱码
同时使用AES_ENCRYPT来insert也会乱码
所以我怀疑是ibatis在使用该函数的时候可能编码与数据库不对,查了很多资料,都无法正常显示,包括添加Listener的方法:
com.ibatis.common.resources.Resources.setCharset(Charset.forName("gbk"));