作者wctang (wctang)
看板java
标题Re: [问题] 存成Unicode (utf-8) 档案
时间Tue Feb 26 10:04:45 2008
我是不知道 Formatter 是啥,看起来像是字串处理用的。
不过呢,所谓写到档案去,你应该想成把程式内的字串变成一个 bytearray,再把
这个 bytearray 存到档案,因为档案本来就只能存 bytearray 而不能存字串,任
何东西要存到档案都要变成 bytearray 。
Java 的字串是 char array, str.getBytes('utf-8') 得到的就是一个 bytearray,
就是用 utf-8 编码来表示的字串。把这个 bytearray 用 OutputStream.write()
写出去就可以了。在 IO 时用 String 只会让情况变复杂而已。
※ 引述《nimath ( 假 装)》之铭言:
: 我要把 JTextArea 或 JTextField 里的文字存成一个文字档
: 但是文字档要存成 utf-8 的格式
: 我试了好几个方法可是都不太成功
: 程式截录如下:
: Formatter output;
: output = new Formatter(filename);
: //方法一: 这个出来用utf-8看会约一半的字乱码 一半正常
: output.format("%s\n", new String(textArea.getText().getBytes("utf-8")));
: //方法二: 这个出来的是big5码
: output.format("%s",new String(textArea.getText().getBytes("utf-8"),"utf-8"));
: //方法三: 这个出来完全乱码
: output.format("%s",newString(textArea.getText().getBytes("big5"),"utf-8"));
: //方法四: 这个出来的是big5码
: output.format("%s",textArea.getText());
: 不知我是那个地方弄错了
: 排列组合好多种写法依旧无法把档案存成 utf-8 的编码
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.125.148.101