关于java读取文件时遇到Unicode乱码情况

本文介绍了一个关于使用Java读取.dat文件时遇到的问题:文件采用Unicode编码导致读取内容异常。通过更改文件编码为UTF-8解决了该问题。

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

今天在做项目时遇到一个很简单又好纠结的问题:

test.dat文件内容:

10000111122222222212345678901234567890000209991234567890123N                    344000000000000          
10000100014012345678901234567891234567890123051301                      1234567890abcde                  
1001000011234567890123                               


 

用java读.dat文件时出现以下情况:

在Eclipse控制台中看到以下输出:

刚开始还以为是每个数字之间有空格,就用str.replaceAll("\\s*","");来消除所有空格,没想到是怎么搞都去除不了空格。搞了几个小时之后打开log日志文件查看,发现以下情况:

在log日志文件看到以下情况

从中看到似乎一个字符都包含两个字节在里面,从一个论坛中看到可能与Unicode编码有关,于是朝着这个思路去寻找解决方案。

用EditPlus编辑工具打开test.dat文件,查看该文件编码发现是“Unicode”编码,把它改回“UTF-8”编码,再读文件看看,果然正常了

Unicode编码中每一个字符都有两个字节的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值