Re: [問題] 存成Unicode (utf-8) 檔案

看板java作者 (wctang)時間16年前 (2008/02/26 10:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
我是不知道 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
文章代碼(AID): #17mtE-mJ (java)
討論串 (同標題文章)
文章代碼(AID): #17mtE-mJ (java)