作者sbrhsieh (sbr)
看板java
标题Re: [问题] 关於java抓中文变乱码
时间Sun Sep 13 23:18:37 2009
※ 引述《WSzc (WSzc)》之铭言:
: 不好意思请问一下
: 就是我现在有一个中文档案 想写个程式抓里头的东西
: 可是我怎麽抓 印出来中文就会变成乱码 英文正常
: 同样的档案我用C/C++印也是正常的
: 我是这样写
: FileReader f = new FileReader(myFile);
: BufferReader b = new BufferedReader(f);
: while( (data = b.readLine())!=null )
: {
: System.out.println(data);
: }
: 如果有一行是 我abc
: 就会印成类似 *)abc 的东西
: 是不是可能是平台问题呢?
: 因为我在之前的工作站是可以正常印中文的
: 可是现在这个工作站连 System.out.println("中文"); 也都是印出乱码
: 翻了前面文章还有网路 找不太到解决方法
: 有人可以帮忙吗 谢谢
先确定你要读取的档案是使用哪一种编码,然後:
1. 修改程式使用正确(对应)的编码
BufferedReader b = new BufferedReader(new InputStreamReader(
theFile, "theEncoding"));
为了避免输出到 console 时被转码过(如果 console 使用的编码无法处理程式输出
的字串会发生失真的现象),最好是透过 GUI 元件来呈现读取到的字串,或是以
UTF-8 编码输出到另一档案里,然後由 browser 来浏览档案内容(browser 必须选择
以 UTF-8 编码解读档案内容)。
2. 变更 JRE 预设的编码。
在启动你的 Java application 时指定 "file.encoding" property value
java -Dfile.encoding="theEncoding" MyProgram
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.136.1
1F:推 WSzc:感谢您 可以了!! 09/14 13:38