java下mysql中文乱码问题的解决

项目中碰到的乱码问题,希望对同样碰到此问题的朋友有些帮助。至少我认为是最简便的方法。
原理:mysql默认的字符集是latin1,java中对应的就是ISO-8859-1字符集,所以存入数据时转换为ISO-8859-1,取出时再由ISO-8859-1转换为GBK就OK了。
import java.io.UnsupportedEncodingException;
//解决中文问题
public class EncodingUtil {
 
 //从数据库取出用
 public static String latin1ToGBK(String str)
 {
  try {
    String temp_p = str;
    byte[] temp_t = temp_p.getBytes("ISO-8859-1");
    String temp = new String(temp_t,"GBK");
    return temp;
  }catch (UnsupportedEncodingException ex) {
   System.out.println(ex);
   return "";
  }

 }

 //存入中文数据时用
 public static String GBKToLatin1(String str)
 {
  if(str==null)
  {
   str="";
  }
  else{
   try{
    str=new String(str.getBytes("GBK"),"ISO-8859-1");
   }
   catch(Exception ex){
    ex.printStackTrace();
   }
  }
  return str;
 }


}
 

你可能感兴趣的:(JAVA)