最近因為某些軟體的風波
所以想自己寫個連接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)
(甚至不是偶數的倍數到底是怎麼回事)
想問問到底是我寫的問題有問題還是我編碼的方式不對