win7正常,java代码读取中文文本,到linux下乱码的解决办法

本文介绍了Win7系统与Linux系统编码不一致导致文本乱码的问题,并提供了在读取文本时的处理方法及Linux中转换编码的命令。包括使用Java代码尝试读取文本文件并正确显示内容,以及在Linux环境下使用iconv命令将文本从GB2312编码转换为UTF-8编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产生乱码的原因是因为,win7系统的编码和linux系统编码不一致引起的。因为IO操作流和系统有交互,所以产生了乱码。

在读取文本时的处理:

try {
            BufferedReader reader = new BufferedReader(new FileReader(file));
            String tempContent = "";
            while ((tempContent = reader.readLine()) != null) {
                    byte[] bytes = tempContent.getBytes("UTF-8");
                tempContent = new String(bytes,"UTF-8");
                formerInfo.append(tempContent.trim()+"\n");
            }
}
在linux中通过:
iconv -f GB2312 -t utf-8 text.txt > text-utf-8.txt
将文本将换成utf-8的编码。
前提是你linux系统的编码是utf-8.可以使用命令: echo $LANG查看系统编码。
可能通过/etc/sysconfig/i18n查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值