您的位置:首页 > 编程语言 > Java开发

解决Java的Process读取命令行输出乱码问题

2017-12-29 11:30 1081 查看
首先问题场景:使用java开发的web项目,三个客户端程序,都部署在linux下。三个客户端和war包都是采用utf编译,三个客户端已可运行jar包的形式运行。在客户端程序调用java的process执行命令后将输出通过流发送给服务器端,在服务器端将获取到的数据写入文件中。后期读取文件的内容出现乱码。

问题分析:首先判断process读取数据是否乱码、再判断客户端发送给服务器的是不是乱码、再判断服务器写入文件是否乱码、再判断服务器从文件中读取是否乱码。

解决方法:1、当发现process读取数据乱码时,需要查看客户端程序(可运行jar包)所在linux的编码格式,使用locale命令查看。我这里的是en_US.UTF-8,然后我把它该成zh_CN.GB18030,process读取数据的时候不要指定字符编码格式。问题解决!

2、当发现是客户端发送给服务器是乱码的时候,需要确认服务器和客户端程序所在环境的编码是否一致,我把服务器的编码也改成GB18030,问题解决!

3、当发现是后面两个的问题时,需要确定写文件和读文件的格式转换,如果服务器和客户端的都是一致的,gb18030.这里读写文件都不需要指定编码格式,直接操作即可!

总结:写的不是很详细,如果有什么可以在线留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  乱码 Process jar java 编码