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

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

test.dat文件内容:

10000111122222222212345678901234567890000209991234567890123N                    344000000000000          
10000100014012345678901234567891234567890123051301                      1234567890abcde                  
1001000011234567890123                               


 

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

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

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

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

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

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

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

你可能感兴趣的:(关于java读取文件时遇到Unicode乱码情况)