解决Java文件读取字符串乱码以及虚拟机文件中文乱码的问题

本文介绍了解决文件打开出现乱码的通用方法,包括获取原始文件编码、转换字节序列及重新编码显示等内容,并附带提供Linux系统下中文乱码问题的解决方案。

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

有时候工作中会遇到别人发给你的文件在你这边打开乱码的情况,一般来说原因是文件创建时的编码和自己打开的编码格式不一致造成的,解决乱码通用的方法有以下三步:

  • 从文件源头方获取对方的编码
  • 将文件内容以getBytes()方法转为对应的字节序列,getBytes()方法内传对方的编码
  • new一个String,把字节序列传进去,第二个参数填我们要转成的编码
		//乱码内容
        String info="krre030300030322";
        
        //以对方的编码格式转为字节数组
        //方式一
        info.getBytes(Charset.forName("UTF-8"));
        //方式二
        try {
            info.getBytes("UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        //方式三
        info.getBytes(StandardCharsets.UTF_8);
        
		//转换
        byte[] srcByte = info.getBytes(StandardCharsets.UTF_8);
        String dest = new String(srcByte, Charset.forName("GBK"));

另附Linux系统中文乱码无法识别问题的解决方案

cat << EOF > /root/.vimrc
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
EOF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值