Re: [問題] big5轉utf8

作者: achaos (熱~~~~)   2014-03-25 22:10:03
回覆一下推文的疑惑
其實本來都要有encoding參數,因為你要告訴java你要用什麼編碼來解析這個字串
如果沒有帶,那java會用系統的預設編碼。
假設我們現在是收big5字串,再假設getByte後的Array是 [1A,2B]
但是系統是UTF8,那想要將這個Array轉成字串,java會用UTF-8的編碼進行轉換
就會亂碼了。
這個情形就可以在轉換時,加上encoding參數,告訴java我這個Array是BIG5哦
請先用BIG5做轉換,轉換完畢再java裡面就是unicode,
這個時候拿著轉換後的String做任何事都不會有問題了。
這是我實際試過得到的結果,我不知道觀念對不對
但就是一個原則,如果編碼有錯亂,那就是訊息進來或出去時,都要告知java正確的編碼
也就是加上encoding啦!!!!
※ 引述《danny8376 (釣到一隻猴子@_@)》之銘言:
: ※ 引述《Lordaeron (Terry)》之銘言:
: : Java 的 String 內部是 Unicode 是指什麼呢?
: : 你打開一個Big5存的文字檔, 讀取其中的內容, 用READLINE, 讀到字串中,
: : 哪麼, 這字串的編碼會是?
: 內部是unicode存在記憶體
: 就像Win現行所有程式在記憶體內都是UTF-16編碼一樣的狀況
: 也就是說當你用big5去讀取big5的檔案
: 這中間會把檔案用你指定的big5去解碼
: 解完之後轉成unicode(UTF-16)之後塞進記憶體裡
: 而當你要輸出到OutputStream的時候
: 又會把這unicode轉成你要的編碼
: 這是所有支援unicode的程式內部會有的處理模式

Links booklink

Contact Us: admin [ a t ] ucptt.com