Re: [問題] big5轉utf8

看板java作者 (釣到一隻猴子@_@)時間10年前 (2014/03/24 22:58), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串4/8 (看更多)
※ 引述《del680202 (HANA)》之銘言: : : ※ 編輯: del680202 來自: 61.230.139.95 (03/24 22:33) : 推 virnux:用BufferedWriter裝飾OutputStreamWriter 03/24 22:44 : → danny8376:getBytes拿到的是正確的啊... 你那裏沒寫對吧 03/24 22:46 : : 我問題沒描寫清楚 : : 說細一點的話 : : 我有一隻daemon會去產生檔案是big5編碼 : : java client會去把那個檔案用InputStream讀進來後先轉成java字串 : : 假設是 String str = new String(inputBytes, "big5") : : 這時候的str在client可以正常顯示沒問題 : : 之後要把str丟往server了,先經過一手轉換 : : str = new String(str.getBytes("utf-8")) 問題在這 new String(str.getBytes("utf-8")) 這句的意思是請把str.getBytes("utf-8")這一整串utf-8的bytes 用"系統預設編碼"去轉成字串 也就是big5 然後送出時會再轉成bytes送出 而這邊就產生你說的問題了 請改成 new String(str.getBytes("utf-8"), "utf-8") 不然就直接 write(str.getBytes("utf-8")) : : 之後server接到str用Writer寫到local : : 不過顯示出來就如上面講的,還得經過iconv轉回big5才能正常顯示 : : -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.216.102 ※ 編輯: danny8376 來自: 140.115.216.102 (03/24 23:00)

03/24 23:00, , 1F
我在試看看 感謝
03/24 23:00, 1F

03/25 01:30, , 2F
我覺得這是寫過 C 的人來寫 Java 最常掉的坑...
03/25 01:30, 2F
文章代碼(AID): #1JC4WL-O (java)
討論串 (同標題文章)
文章代碼(AID): #1JC4WL-O (java)