看板 AndroidDev 關於我們 聯絡資訊
最近因為某些軟體的風波 所以想自己寫個連接PTT的軟體 目前的寫法是開一個新的Thread跑socket socket = new Socket(host, port); 然後參考版上讀取的方法 in = new BufferedReader(new InputStreamReader(socket.getInputStream())); in.readLine(); 不過編碼一直出問題 (使用String S = new String(in.readLine().getBytes(),"BIG5");) 所以把他拆開來讀取 byte[] data = in.readLine().getBytes(); for迴圈跑S+= Byte.toString(data[num]) + ","; 然後把他印出來 System.out.println(S); 然後就發現只要遇到中文字或全形符號他的編碼就會變成-17 -65 -67(0xEF 0xBF 0xBD) (甚至不是偶數的倍數到底是怎麼回事) 想問問到底是我寫的問題有問題還是我編碼的方式不對 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.127.36.33 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1435249088.A.DCA.html
alog: 走ssh 06/26 02:51
alog: ssh [email protected] 06/26 02:51
alog: telnet有big5跟utf8的問題踩不完 06/26 02:52
alog: bbsu = utf8版 06/26 02:52
LPH66: EF BF BD 是 UTF-8 的查無此字 (U+FFFD) 06/26 07:52
LPH66: 你看一下你從 in 讀進來的 byte 有沒有問題 06/26 07:52
LPH66: 我猜你或許需要從 socket 直接讀 byte 才行 06/26 07:53
目前是暫時放棄用telnet連接 改用JSch走ssh 謝謝大家的建議~ ※ 編輯: tripleleft (120.127.36.33), 06/26/2015 18:20:36
felixgugu: 請參考https://moztw.org/docs/big5/ UAO 2.50 b2u 07/04 01:45