昨天写了个程序,用来做数据转发的,需要从txt文件里读数据,
FileInputStream fis = new FileInputStream(path); InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
对文本进行解析之后使用socket发送
byte[] bs = sendStr.toString().getBytes("UTF-8"); os.println(new String(bs,"UTF-8")); os.flush(); System.out.println(new String(bs,"UTF-8"))
在myeclipse下运行,对方收到的数据进行解析,一切正常,使用javac解析也没有问题,也使用-encoding UTF-8设置了编码格式,在本地打印的中文正常,对方接收后显示中文乱码,想请教一下各位,有遇到过同样问题的吗?
在从socket中读取信息的时候需要用到下面的方法
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));;
这个buffer中的数据就不会乱码,效率也比你byte的高
对方设置编码了没有?
建议你发送的数据使用
如果发送byte 应该明确写明使用的编码 str.getBytes("UTF-8") 而不是str.getBytes() //这样是系统默认的
不知道你咋发送的
以下几个地方可以考虑:
1)你自己文件中是否是正常显示的
2)然后文件读取后是否正常
3)传输过程中的编码方式
4)传输过去以后展示的时候编码方式是否正确
5)对方的系统是否支持中文 (就是说有没有中文字库)