[問題] 編碼轉換問題(BIG5轉UTF8)

作者: hagai0407 (阿丐哦哪個丐)   2017-01-14 13:19:01
各位前輩午安,最近在製作專案時遇到編碼轉換問題...
詳情如下:
本身的servlet要呼叫一支API,而該api會回傳xml格式字串,
但對方API的系統編碼是BIG5,而我的系統是UTF8......
不知道是不是因為這個原因導致回傳字串的中文部分變成很多菱形的亂碼,
爬文結果多半與getByte function有關,
但試了相關的語法只讓菱形變成問號而已。
請問各位大大能否提供類似問題的解法? 感激不盡QQQ
作者: icydream (巧虎)   2017-01-14 14:58:00
在讀對方資料時 先用big5,接著再用utf8來編碼
作者: ssccg (23)   2017-01-14 15:45:00
String是沒有編碼的(先不管怎麼存在記憶體的),重點要放在binary資料的編碼,對方系統編碼是BIG5,代表的是對方傳出時是String → byte[] (BIG5編碼),所以你在收資料時,取得byte[]後直接用BIG5解碼回String就好,跟你自己的UTF-8沒關如果是先讀byte[]再轉String就是new String時設定如果是用Reader讀Stream,那就是設Reader的編碼你會菱形又變問號大概是兩個編碼不懂狀況轉來轉去,不要想太複雜...
作者: LPH66 (-6.2598534e+18f)   2017-01-14 18:23:00
Java 處理編碼事情已經很單純了, byte[] 就是外界編碼轉成 String 需要提供編碼, 它就會變成 Unicode 字串要再送出去時再變回 byte[], 這裡也要再給一次編碼至於你的系統是 UTF-8 這件事和 Java 無關

Links booklink

Contact Us: admin [ a t ] ucptt.com