InputStreamReader isreader = new InputStreamReader(input, "Unicode");
....
input_string = reader.readLine(); 默认InputStreamReader是utf-8编码,然后发送端以gb2312编码发送数据,可以读到换行但由于现在字符串中包含中文,不同编码会乱码,然后发送端只支持gb2312或unicode编码,所以现在统一改成unicode编码,但这样就一直卡在readLine这里,应该是没有读到换行,请问这怎么解决呢?

解决方案 »

  1.   

    "Unicode"好像不是Java接受的字符集名称,我猜你是指“UTF-16”
    InputStreamReader isreader = new InputStreamReader(input, "UTF-16");
    这样看看在Unicode下,回车换行没问题的
      

  2.   

    是不是读web服务器的数据啊?
      

  3.   

    发送方以GB发,你在接收方以UTF-8接收,应该也是有潜在问题的,只是运气好没碰到而已。
    解决办法:
    保持你的字符集和发送方完全一致。(注意 Unicode == UTF-16 )
    或者你先用ISO-8859-1收下,(这字符集什么都能收),然后手工强转为正确的字符集。
      

  4.   


    不是,是vb做的服务端,默认不支持utf-8谢谢几位,我去试下