最近在做一个项目, 其中用到了读取utf-8的txt文件中的特定字符串.
例如: desc.txt有内容如下:
A
B
C
注意, A是文本的第一行第一个字符.
这个时候问题出来了, 读取文件中的 A, 然后得到A.hashCode 不等于 直接写"A".hashCode
我百思不得其解, 最后想到了我的txt文件是用的微软的"文本编辑器"保存为utf-8, 这个时候微软会在第一个字符前面加入特殊字符BOW.
之后我用notepad++重新保存txt为"utf-8无BOW格式编码", 这个时候读取txt文件中的 A, 然后得到A.hashCode 就等于 直接写"A".hashCode
总结,大家在项目中, 要避免用微软的"文本编辑器"保存为utf-8格式的txt文本.
本文介绍了一个关于UTF-8编码的常见问题:使用某些编辑器保存文本文件时,会在文件开头添加不可见的BOM标记。这可能导致字符串哈希值不匹配等问题。文章提供了如何避免这一问题的方法。
3万+

被折叠的 条评论
为什么被折叠?



