Re: [問題] big5轉utf8

作者: danny8376 (釣到一隻猴子@_@)   2014-03-24 22:58:24
※ 引述《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才能正常顯示
:
:
作者: del680202 (HANA)   2014-03-24 23:00:00
我在試看看 感謝
作者: LPH66 (-6.2598534e+18f)   2014-03-25 01:30:00
我覺得這是寫過 C 的人來寫 Java 最常掉的坑...

Links booklink

Contact Us: admin [ a t ] ucptt.com