作者tripleleft (连续中离)
看板AndroidDev
标题[问题] 关於telnet连接的编码问题
时间Fri Jun 26 00:18:02 2015
最近因为某些软体的风波
所以想自己写个连接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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1435249088.A.DCA.html
1F:推 alog: 走ssh 06/26 02:51
3F:→ alog: telnet有big5跟utf8的问题踩不完 06/26 02:52
4F:→ alog: bbsu = utf8版 06/26 02:52
5F:推 LPH66: EF BF BD 是 UTF-8 的查无此字 (U+FFFD) 06/26 07:52
6F:→ LPH66: 你看一下你从 in 读进来的 byte 有没有问题 06/26 07:52
7F:→ LPH66: 我猜你或许需要从 socket 直接读 byte 才行 06/26 07:53
目前是暂时放弃用telnet连接
改用JSch走ssh
谢谢大家的建议~
※ 编辑: tripleleft (120.127.36.33), 06/26/2015 18:20:36