[問題] 寫入中文檔案問題

看板java作者 (大頭)時間16年前 (2009/05/27 18:28), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/1
我只是希望把中文字串寫入到output.txt import java.io.*; public class write{ public static void main(String[] args) throws Exception{ String dstFile = "output.txt"; DataOutputStream writer = new DataOutputStream( new FileOutputStream(new File(dstFile))); String s = "測試"; writer.writeUTF(s); writer.close(); } } 但是出來的檔案前面都會有怪怪字元 用HEX編碼來看是多了 00 06這兩個byte 到底是怎麼回事? 而且有時候多出的那兩個byte還會變@@!! 我想問有沒有辦法在輸入檔案時把這兩個byte去掉? 要不然用記事本開啟看起來很奇怪 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234

05/27 19:30, , 1F
我猜是字串長度的byte數...兩個中文字在utf-8下是6 byte
05/27 19:30, 1F

05/27 21:22, , 2F
new FileOutputStream("outfilename"), "UTF8") 這樣呢?
05/27 21:22, 2F

05/27 21:35, , 3F
to 樓上 FileOutputStream contructor無法設定編碼
05/27 21:35, 3F

05/27 21:38, , 4F
1樓說對了!! 我試了好幾次 那的確是字串長度byte數
05/27 21:38, 4F

05/28 01:19, , 5F
API doc 中 DataOutputStream - writeUTF 說明的很清楚
05/28 01:19, 5F

05/28 01:41, , 6F
QQ
05/28 01:41, 6F
文章代碼(AID): #1A7HMsXd (java)