java下读big5乱码的问题

johnma 2008-12-17 05:16:08
一个文件中有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());
...全文
685 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnma 2009-02-13
  • 打赏
  • 举报
回复
谢谢大家,已经解决,是因为Big5库中没有这个字,要用Big5_HKSCS就可以了
zl13994368 2008-12-29
  • 打赏
  • 举报
回复
学习学习
cqddklx 2008-12-26
  • 打赏
  • 举报
回复
如果是字库里没这个字,你可以试下GB18030编码。这个编码是目前汉语最大的字库了。
至于代码,上面的都可以的。
qd_steven 2008-12-26
  • 打赏
  • 举报
回复
new String(字符串.getBytes("iso-8859-1"),"gb2312");
tiyuzhongxin789 2008-12-18
  • 打赏
  • 举报
回复
你用FileReader("c:\\test.data","BIG5"); 试试
hbwhwang 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hbgzg3006 的回复:]
Java code如果是big5编码的话,这样读一般就没问题了。
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("C:\\text.data"),"big5"));
[/Quote]

正解!
hbgzg3006 2008-12-17
  • 打赏
  • 举报
回复
如果只是读取其中一行(不用再去转成数组了)
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);
hbgzg3006 2008-12-17
  • 打赏
  • 举报
回复
如果是big5编码的话,这样读一般就没问题了。
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("C:\\text.data"),"big5"));
ahlon 2008-12-17
  • 打赏
  • 举报
回复
试试gbk编码
fuyou001 2008-12-17
  • 打赏
  • 举报
回复
你用FileReader("c:\\test.data","BIG5"); 试试

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧