Mybatis查询数据库返回??????
这个问题就是在与查询传递的参数不对,
我的问题是数据库查询需要使用utf-8的编码方式,而通过浏览器传递的确实ISO编码的,这就导致传递的String类型的数据不正确,传递到数据库时就是错误的,乱码。因为ISO其实是不支持中文的,同时ISO的编码方式也和utf-8不同,两者之间的编码方式有差别。
解决办法:
1.首先你需要知道传到后台的字符串是什么类型的编码
2.你需要根据传递来的编码进行转化,转化成你查询的数据库支持的编码。
底下附获取编码格式的方法,和转化编码格式的方法。
public class GetEncodingUtil {
public static String getEncoding(String str) {
String encode = "GB2312";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GB2312
String s = encode;
return s; //是的话,返回“GB2312“,以下代码同理
}
} catch (Exception exception) {
}
encode = "ISO-8859-1";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是ISO-8859-1
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = "UTF-8";
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是UTF-8
String s2 = encode;
return s2;
}
} catch