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

首先问题场景:使用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.这里读写文件都不需要指定编码格式,直接操作即可!

总结:写的不是很详细,如果有什么可以在线留言

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值