为什么我用getinputStream接收过来的数据都带个口???

liujava8 2006-03-21 01:25:15
InputStream is=socket.getInputStream();
byte barr[]=new byte[1024];

// while(true)
// {
int kk=is.read(barr,0,1024);
if(kk==-1)
{
chatServer.SetRecText("Read Error"); }
else if(kk==0)
{
chatServer.SetRecText("Read Nothing");
}
else
{
line=new String(barr,0,kk,"utf-8");
chatServer.SetRecText("Read:" + line);
}

如上。如果接收过来的是abc。那么就会在后面加上个口成了abc口。为什么呀?
换把编码换成gb2312的也这样。
...全文
72 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
软若石 2006-03-24
尚观
回复
piaopiao11 2006-03-21
试试 line=line.trim();
回复
liujava8 2006-03-21
line=new String(barr,0,kk,"iso8859-1");
line=new String(line.getBytes("gb2312"),"iso8859-1");
chatServer.SetRecText("Read:" + line);

改成这样了还不行。接收的数据是Flash发过来的。Flash发数据好像在每一句后面都加上了个\0。
回复
fangshao 2006-03-21
可能是编码问题

package lib;
import java.io.*;

public class CodeChange

{
public static String DustTOChin(String dust) throws IOException

{
String chin="";
chin=new String(dust.getBytes("iso8859-1"),"gb2312");
return chin;
}

public static String ChinToDust (String chin) throws IOException

{
String dust="";
dust=new String(chin.getBytes("gb2312"),"iso8859-1");
return dust;
}
}

转哈子试试看
回复
jfy3d 2006-03-21
BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
in.close();

用这个呢
回复
cleansunshing 2006-03-21
mark
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-21 01:25
社区公告
暂无公告