OutputStream os = socket.getOutputStream();
PrintStream out = new PrintStream();
这段代码会出现DM_DEFAULT_ENCODING的问题
即:依赖默认编码
找到了对一个方法的调用,该方法将执行字节到字符串(或字符串到字节)转换,并将假定默认平台编码是合适的。这将导致应用程序行为因平台而异。使用替代API并显式指定字符集名称或字符集对象。
需要改成 BufferedWriter 这种形式:
OutputStreamWriter osw = new OutputStreamWriter(socket.getOutputStream(), "utf-8");
BufferedWriter out = new BufferedWriter(osw);
对应的InputStream也需要写成 BufferedReader 这种形式 :
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
参考链接:https://blog.csdn.net/panweiwei1994/article/details/78398769
字节流变成字符流。