InputStreamReader isreader = new InputStreamReader(input, "Unicode");
....
input_string = reader.readLine(); 默认InputStreamReader是utf-8编码,然后发送端以gb2312编码发送数据,可以读到换行但由于现在字符串中包含中文,不同编码会乱码,然后发送端只支持gb2312或unicode编码,所以现在统一改成unicode编码,但这样就一直卡在readLine这里,应该是没有读到换行,请问这怎么解决呢?
....
input_string = reader.readLine(); 默认InputStreamReader是utf-8编码,然后发送端以gb2312编码发送数据,可以读到换行但由于现在字符串中包含中文,不同编码会乱码,然后发送端只支持gb2312或unicode编码,所以现在统一改成unicode编码,但这样就一直卡在readLine这里,应该是没有读到换行,请问这怎么解决呢?
InputStreamReader isreader = new InputStreamReader(input, "UTF-16");
这样看看在Unicode下,回车换行没问题的
解决办法:
保持你的字符集和发送方完全一致。(注意 Unicode == UTF-16 )
或者你先用ISO-8859-1收下,(这字符集什么都能收),然后手工强转为正确的字符集。
不是,是vb做的服务端,默认不支持utf-8谢谢几位,我去试下