public class characterEncoding {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
byte [] a="我爱中国".getBytes();
byte [] b="我爱中国".getBytes("iso-8859-1");
String str_gbk=new String(b, "gbk");
//str_iso为什么是乱码?
String str_iso=new String(b, "iso-8859-1");
String str_default=new String(a);
System.out.println("str_gbk="+str_gbk);
System.out.println("str_iso="+str_iso);
System.out.println("str_default="+str_default);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
乱码编码

解决方案 »

  1.   

    String str_iso=new String(b, "iso-8859-1");8859编码是不支持中文的,你写我爱中国,用这个编码肯定存在问题的。
      

  2.   

    从本质上说,ISO-8859-1是单字节编码,自身不能显示中文,若要显示中文,必须和其他能显示中文的编码配合,如“GBK”,“UTF-8",
    以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。
      

  3.   

    深入分析 Java 中的中文编码问题 
      

  4.   

    您推荐的那篇文章在《深入分析Java Web技术内幕》第三章http://product.dangdang.com/product.aspx?product_id=22881803
    看完理解的不是很透彻,以为只要编码和解码用的格式一样即可,没想过某种格式是不是支持中文,非常感谢