关于读取本地text文件,自动被添加空格的问题

最近做一个小程序,读取本地指定路径下的text文件,逐行获取text文本然后再进行处理,结果遇到了一个奇葩问题,先插个图片给各位看官

坑:本地text文件中数据为1123/10(数据反复检查无空格,换行之类),经过截取后,str1=1123  str2=10,可是打印结果显示str1.length()=5

问题原因:不详,本人菜鸟没弄懂,欢迎各位看官各显神通

问题原因百度:

unicode编码为65279的字符叫“ZERO WIDTH NO-BREAK SPACE”即没有宽度的空格符,本质上也是null值,但是不同于null。byte-order mark(BOM)是位于码点U+FEFF的统一码字符的名称。当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的记号。说白了就是位于文本最前面用来标识该unicode编码的文本内容是以UTF-8、UTF-16或UTF-32编码的通过查询发现windows的记事本程序在打开文本内容后会自动添加BOM,我怀疑是那个模块在编码的时候用记事本编辑过代码,然后在模板或其他可能的文件中添加了BOM。 

解决方法:如上对char类型首位进行判断,如果首位存在问题则进行处理.

 

posted @ 2017-06-02 15:02  脑白金  阅读(613)  评论(0编辑  收藏  举报