一个文件中有big5编码的 "阿瑞卡裏斯堡",我用如下代码读出,结果为"阿瑞卡?斯堡",其中"裏"为乱码,请问大侠们如何解决,谢谢(估计是java big5字库不全)
FileInputStream in1=new FileInputStream("c:\\test.data");

byte   b[]   =   new   byte[256];   
    int i;
    StringBuffer sb=new StringBuffer();
  while((i=in1.read(b))!=-1)   
  {   
                          String s=new String(b,"BIG5");
  sb.append(s);
  }   
System.out.println(sb.toString());

解决方案 »

  1.   

    你用FileReader("c:\\test.data","BIG5"); 试试
      

  2.   

    如果是big5编码的话,这样读一般就没问题了。
    BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("C:\\text.data"),"big5"));
      

  3.   

    如果只是读取其中一行(不用再去转成数组了)
     System.out.println(br.readLine());
    多行的话 存到一个StringBuilder即可:
    StringBuilder sb=new StringBuilder();
    String line="";
    while((line=br.readLine())!=null){
    sb.append(line+"\r\n");
    }
    System.out.println(sb);
      

  4.   

    你用FileReader("c:\\test.data","BIG5"); 试试
      

  5.   

    new String(字符串.getBytes("iso-8859-1"),"gb2312");
      

  6.   

    谢谢大家,已经解决,是因为Big5库中没有这个字,要用Big5_HKSCS就可以了