问题描述
昨天写了个程序,用来做数据转发的,需要从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的高
解决方案二:
以下几个地方可以考虑:1)你自己文件中是否是正常显示的 2)然后文件读取后是否正常3)传输过程中的编码方式4)传输过去以后展示的时候编码方式是否正确5)对方的系统是否支持中文 (就是说有没有中文字库)
解决方案三:
建议你发送的数据使用如果发送byte 应该明确写明使用的编码 str.getBytes("UTF-8") 而不是str.getBytes() //这样是系统默认的 不知道你咋发送的
解决方案四:
对方设置编码了没有?