/*** 前后端数据乱码问题
* 解决办法1:
* 乱码原因:一编一解码型不一致导致。
* [main description]
*@param{[type]} String[] args [description]
*@return{[type]} [description]*/
public static voidmain(String[] args) {
String name= "您好,中国!";
String striso8859,strgb2312,strgbk,strutf16,strutf8= "";byte[] iso8859,gb2312,gbk,utf16,utf8;try{/*** String.getBytes("");
* String:当前乱码的数据字符串。
* String.getBytes(String str):将乱码的数据字符串转换为byte数组。
* String.getBytes(String str)中的参数str是当前编码类型。(这个类型是当前乱码的类型)*/iso8859= name.getBytes("ISO-8859-1");
gb2312= name.getBytes("GB2312");
gbk= name.getBytes("GBK");
utf16= name.getBytes("UTF-16");
utf8= name.getBytes("UTF-8");/*** String(Byte [] byte,String str)
* String提供将不同编码格式的byte数组转化为字符串数据的构造函数,其中:
* byte是转换后的乱码byte数组,String类型的str则是声明即将要转换成为编码格式。*/striso8859= new String(iso8859,"UTF-8");
strgb2312= new String(gb2312,"UTF-8");
strgbk= new String(gbk,"UTF-8");
strutf16= new String(utf16,"UTF-8");
strutf8= new String(utf8,"UTF-8");
System.out.println(striso8859);
System.out.println(strgb2312);
System.out.println(strgbk);
System.out.println(strutf16);
System.out.println(strutf8);
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
}