日期:2014-05-18  浏览次数:20685 次

JSP中socket通信接收字符串显示乱码的问题
我在一个jsp页面中建立了一个socket与服务器通信,在接收端接受服务器发送回来的字符串,但是如果服务器返回的字符串很长的时候,接收端的readline老是接收前一部分是正确的,到后来就变成乱码了,谁能知道怎么回事啊,代码如下:

Socket   cSocket=   new   Socket( "127.0.0.1 ",   4077);
BufferedReader   is   =   new   BufferedReader(new   InputStreamReader(cSocket.getInputStream()));
String   tempStr;
String   ewXml= " ";
while((tempStr=is.readLine())!=null)

{

ewXml=ewXml+tempStr;
if   (tempStr.indexOf( " ")   !=   -1   )
break;
}

out.println(ewXml);
输出的ewXml很长时老是前面显示正确,到后面就成乱码了,到底是什么原因啊

------解决方案--------------------
你把数据以字节数组形式读取过来,读完后再进行转换应该不会有问题。
------解决方案--------------------
你看看输出的时候是否出现乱码
------解决方案--------------------
你不可能有纯文字把BufferedReader的缓存写满咯
他的缓存是 8Kb
是乱码? 还是出现的都是空格一样的方框哦
如果是空格一样的方框的话 可以在输出的时候用 ewXml后面加上 trim()方法把空格去掉 就OK了
我想应该不是乱码!!!!!!