一. 问题描述
在Windows
平台下进行开发,使用BufferedReader
包装InputStreamReader
流读取数据的出现中文乱码,代码如下:
//启动子进程
Process process = Runtime.getRuntime().exec("javac");
//以process进程的错误流获取输入流
InputStream is =process.getErrorStream();
//流的转换:字节流转字符流
InputStreamReader isr = new InputStreamReader(is);
//流的包装
BufferedReader br = new BufferedReader(isr);
二. 解决方案
Windows
平台下简体中文默认使用GBK
编码,而Linux
平台下是UTF-8
编码,所以在Windows
平台下开发需要设置转换流的编码,代码如下所示:
InputStreamReader isr = new InputStreamReader(is,"GBK");
完整代码如下所示:
//启动子进程
Process process = Runtime.getRuntime().exec("javac");
//以process进程的错误流获取输入流
InputStream is =process.getErrorStream();
//流的转换:字节流转字符流
InputStreamReader isr = new InputStreamReader(is,"GBK");
//流的包装
BufferedReader br = new BufferedReader(isr);
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » BufferedReader读取数据中文乱码问题的解决方案