首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

DataInputStream里的readByte()读出来是乱码,该如何解决

2012-01-21 
DataInputStream里的readByte()读出来是乱码Java codepublic String send(String Command) throws Excepti

DataInputStream里的readByte()读出来是乱码

Java code
public String send(String Command) throws Exception {        String ret="";        Socket soc = new Socket(getURL(), getPORT());//getURL=192.168.1.168;getPORT=4016                System.out.println("Connect Telnet:" + getURL() + "-" + getPORT());                DataInputStream din = new DataInputStream(soc.getInputStream());                DataOutputStream dout = new DataOutputStream(soc.getOutputStream());                dout.writeUTF(Command);        System.out.println("send:" + Command);            int re=0;        while (re != -1) {            re = din.readByte();//read();readInt();readUTF();方法都试了结果都不对            System.out.println("int" + re);            Character c = new Character((char) re);//这就开始乱码了            System.out.println("char:" + c);            ret = ret.concat(c.toString());        }                            System.out.println("reply:" + ret);        din.close();        dout.close();        soc.close();        return ret;    }

这是linux系统下的运行结果
Connect Telnet:192.168.1.168-4016
send:set -t 14:35:51
int-1
char:ï¿¿
reply:ï¿¿
yes Reply: ï¿¿


[解决办法]
检查下系统编码。

让楼主能继续发言
[解决办法]
lz换个流试试,BufferedReader
[解决办法]
Java code
StringBuffer sb = new StringBuffer();        int len = 0;        byte[] buffer = new byte[4096];        while ((len = din.read(buffer)) != -1) {            sb.append(new String(buffer,0,len,"UTF-8"));        }        System.out.println(sb.toString()); 

热点排行
Bad Request.