Re: [問題] 存成Unicode (utf-8) 檔案
我是不知道 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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 6 篇):