对EUC-JP编码的日文文件读取,但读出来还是有某些字符会乱码,这是怎么回事?
文本内容(复制自一个EUC-JP编码的网页,共两行):
かてきょ~らいふ
★描き下ろしテレカ ★
部分代码:
FileInputStream fis=new FileInputStream("C:\\1.txt");
fis.read(buff2);
byte[] buff2=new byte[fis.available()];
String aaa=new String(buff2,"EUC-JP");
System.out.println(aaa);~和★都被替代成其他字符了,试过用InputStreamReader(fis,"EUC-JP")读取,但依然是有乱码。
文本内容(复制自一个EUC-JP编码的网页,共两行):
かてきょ~らいふ
★描き下ろしテレカ ★
部分代码:
FileInputStream fis=new FileInputStream("C:\\1.txt");
fis.read(buff2);
byte[] buff2=new byte[fis.available()];
String aaa=new String(buff2,"EUC-JP");
System.out.println(aaa);~和★都被替代成其他字符了,试过用InputStreamReader(fis,"EUC-JP")读取,但依然是有乱码。
如果用的是 UTF-8 那肯定就不对了。
BufferedReader br=new BufferedReader(in);
lz,你这个代码有问题啊
fis.read(buff2);
中buff2哪来的?上一段测试过的代码,你看一下,我是日文xpimport java.io.FileInputStream;
import java.io.FileNotFoundException;public class Test4 {
public static void main(String args[]){
FileInputStream fis;
try {
fis = new FileInputStream("C:\\1.txt");
byte[] buff = new byte[50];
fis.read(buff);
String aaa=new String(buff);
System.out.println(aaa); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
打印结果
かてきょ~らいふ
★描き下ろしテレカ ★
其实我原本是写一个提取某日文网站网页内容的程序,测试文件试过直接用保存的网页,该网页打开后浏览器显示是EUC-JP编码,并且在浏览器内无乱码现象。
文本内容我是为了方便测试弄上去的,然后听你一说我试试再次换回html上面,突然就OK了。所以分数是你的了to 5L:
你这个如果是读哪个txt的话结果和我一样。to 7L:
buff2那个是我删除无关代码时不小心弄错了,不好意思。
另外,你这个没指定编码只在日文xp有用,虽然我也有日文xp,但因各种原因我不能在日文xp下用。谢谢各位。
不知道和我换了NETBEANS 6.7.1有没有关系。