java 转换文本编码问题 我用bufferread 读文本文件,如果文本文件的编码为Unicode是 得到是乱码,如果文本的编码为ANSI则没有问题,请问该如何解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 笨但是一定可行的一个方法:先用java读取到文件 再暂存到一个temp文件中,把这个temp用你想用的编码方式然后再读文件。可以看看 java编码 和本地编码的问题 ,以前看过,现在忘光了... 用BufferReader读取字符,编码为Unicode,BufferedInputStream读取的编码为ANSI InputStreamReader类有个构造方法可以选择java.nio.charset.Charset记得用BufferedReader br=new BufferedReader(new FileReader("c:\\text.txt"));text.txt是本地的Locale指定的编码格式,如果是windows中文版一般是GBK.也就是说你用记事本打开没有乱码是因为记事本知道它是GBK.但如果text.txt是UTF-16BE格式编码,你用记事本打开是乱码,只好用ultraedit打开.而用BufferedReader br=new BufferedReader(new FileReader("c:\\text.txt"));肯定是乱码因为它把text.txt当成gbk编码来打开.所以有了下面的例子你可以试一下.记得在windows上有BOM的问题 哦BufferedReader br=null;try{ InputStreamReader isr=new InputStreamReader(new FileInputStream("c:\\test.txt"),Charset.forName("UTF-16BE")); br=new BufferedReader(isr); String s; while(null!=(s=br.readLine())){ System.out.println(s); } }catch(Exception e){ }finally{ try{ if(br!=null) br.close(); }catch(Exception e){ e.printStackTrace(); } } 更正一下,因为有BOM的存在,即使是UTF_16BE,记事本程 序也可以正常打开的 除法的问题,求解释 请问Java如何对ie生成的index.dat文件进行读写? 紧急求教java编写的软件使用的中文编码 不明白的问题 请问,哪里有SWT/JFace 的API帮助下载? 用ant启动mysql或tomcat,启动后不返回,有什么好办法? 请问如何读取网卡的物理地址? 请问一个使用JMS发送消息的问题: java在windows平台上使用价值好想没有unix等上大啊 关于java编码的转换 jdbc 什么样的注释才是好注释?
先用java读取到文件 再暂存到一个temp文件中,把这个temp用你想用的编码方式
然后再读文件。可以看看 java编码 和本地编码的问题 ,以前看过,现在忘光了...
InputStreamReader类有个构造方法可以选择java.nio.charset.Charset记得用BufferedReader br=new BufferedReader(new FileReader("c:\\text.txt"));
text.txt是本地的Locale指定的编码格式,如果是windows中文版一般是GBK.也就是说你用记事本打开没有乱码是因为记事本知道它是GBK.但如果text.txt是UTF-16BE格式编码,你用记事本打开是乱码,只好用ultraedit打开.而用BufferedReader br=new BufferedReader(new FileReader("c:\\text.txt"));肯定是乱码因为它把text.txt当成gbk编码来打开.所以有了下面的例子你可以试一下.记得在windows上有BOM的问题 哦BufferedReader br=null;
try{
InputStreamReader isr=new InputStreamReader(new FileInputStream("c:\\test.txt"),Charset.forName("UTF-16BE"));
br=new BufferedReader(isr);
String s;
while(null!=(s=br.readLine())){
System.out.println(s);
} }catch(Exception e){
}finally{
try{
if(br!=null)
br.close();
}catch(Exception e){
e.printStackTrace();
}
}