推 icydream: 在讀對方資料時 先用big5,接著再用utf8來編碼 01/14 14:58
→ ssccg: String是沒有編碼的(先不管怎麼存在記憶體的),重點要放在 01/14 15:45
→ ssccg: binary資料的編碼,對方系統編碼是BIG5,代表的是對方傳出 01/14 15:45
→ ssccg: 時是String → byte[] (BIG5編碼),所以你在收資料時,取得 01/14 15:47
→ ssccg: byte[]後直接用BIG5解碼回String就好,跟你自己的UTF-8沒關 01/14 15:47
→ ssccg: 如果是先讀byte[]再轉String就是new String時設定 01/14 15:48
→ ssccg: 如果是用Reader讀Stream,那就是設Reader的編碼 01/14 15:48
→ ssccg: 你會菱形又變問號大概是兩個編碼不懂狀況轉來轉去,不要想 01/14 15:51
→ ssccg: 太複雜... 01/14 15:53
推 LPH66: Java 處理編碼事情已經很單純了, byte[] 就是外界編碼 01/14 18:23
→ LPH66: 轉成 String 需要提供編碼, 它就會變成 Unicode 字串 01/14 18:24
→ LPH66: 要再送出去時再變回 byte[], 這裡也要再給一次編碼 01/14 18:24
→ LPH66: 至於你的系統是 UTF-8 這件事和 Java 無關 01/14 18:24