java的字符转换问题

Luo_hanwen 2009-05-27 01:09:41
用java程序去爬网页上的内容,或者读取磁盘文件时,如何可以正确的解码;因为网页上用的解码,跟开发平台解码不一样,所以会出现乱码
原问题:如果有一个很大的文件(字节流,内含中文)不能一下读进内存,如何才能把其内容正确的显示在操作台上(不乱码);
我的方法是分段读取,然后打印,可是会乱码
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Luo_hanwen 2009-05-29
  • 打赏
  • 举报
回复
我是用:
byte [] buffer = new byte[ 1024 ];
while ( true ) {// 循环读取流里的数据
int len = fis.read( buffer );
if ( -1 == len ) {// 如果已经读到文件末尾
break;
}
String str = new String( buffer, 0, len, "utf-8" );
System.out.println( str );
}

可是我就是担心出现这种情况,如果读取的这个1024位字节的最后一个字符正好是一个中文的一半(一个中文由两个字节组成),而它的另一半要下次才读到,那打印的时候本次也是乱码,然后下一次因为也只是读到一半所以应该也是乱码呀;我对系统编码跟程序编码的问题可能还是不大理解,请各位高手详细讲解一下一下呀,谢谢
小水晶 2009-05-27
  • 打赏
  • 举报
回复
new String(string.getBytes(code1), code2)
huhushw 2009-05-27
  • 打赏
  • 举报
回复
java好像涉及到国际化得问题。我也是新手,呵呵

62,614

社区成员

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

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