Q:
测试机进行socket交互时,可以正常返回信息;在生产机和本地pc机上交互时,总会超时。 A: 测试机的编码是ISO-8859-1,本地pc机和生产机的编码都是GBK,数据交互是用byte进行传输的,最后四位进行字符转换时总是乱码 修改前是用PrintOutStream.println(String),传输到服务器的,因为传入的参数后四位转码时只能操作系统的环境编码有关系,所以 在GBK环境无论怎么转码都不能成功。 修改后用OutputStream out = Socket.getOutputStream();取得输出流,再用out.write(byte[])的方法把byte数组传到服务器 用InputStream in = Socket.getInputStream(); 取得输入流,用in.read(byte[],int,int)的方法读取服务器返回的数据,执行完read后 byte数组存放的就是服务器返回的数据字符 Anyway: 在进行socket调试接口时,尽量采用用byte[]传输数据的方式。 |
|