今天再次遇到同一个问题:策划给来一个Txt格式配置表,我用解析类去读取,返回的结果为空。解析类参数是:主键key,文件名fileName,错误提示errorTip。

  写读取语句的时候,主键key我是直接从txt文件中复制出来,它是txt文件的第一个字符串,文件名fileName也是直接复制文件名。

  由于已经不是第一次遇到,这次决定不能再视而不见。

  首先在解析类里打印,发现其他配置表都正常,就是这个读取语句中打印出来的key,看起来一模一样,但是就是无法被识别为与程序读取到的key是相等的,想起上次看博客时提到微软的记事本会在文件里加标记符号,于是删除key再手打,发现依然如故。

  回到读取语句,发现删除直接复制过来的key字符串时,删除完key内容之后,想要继续删除包含该key的“符号时,光标依然在原处,这才发现“符号后有一个看不见的字符。于是google Txt文件头的相关资料,了解到:文本文件编码时,会在文件头添加字节顺序标记(Byte Order Mark), 用于标识文件是采用那种格式的编码。一般的文本编辑器是看不见这个标记的(实测Vim可以看见),由于与文件头相连,所以直接复制文本文件开头的字符串时会把这个标记一起复制。最后导致文本解析类判定读取语句给的key参数(包含BOM)与解析类中文本读取方法所读取到的key不一致。

  解决办法:下次写读取文本语句时,莫偷懒直接复制,自己手动敲即可。或者复制过来的时候,光标跳到string头部删除一次不可见的BOM。

PS:如何生成无BOM的文本文件:

  1、notepad++ 格式栏有转换为无BOM格式的选项。

  2、Vim打开文件可以看到BOM文件头删除即可。

Txt格式配置表无法解析的问题——BOM的更多相关文章

  1. spring源码学习五 - xml格式配置,如何解析

    spring在注入bean的时候,可以通过bean.xml来配置,在xml文件中配置bean的属性,然后spring在refresh的时候,会去解析xml配置文件,这篇笔记,主要来记录.xml配置文件 ...

  2. KSFramework配置表:扩展表格解析类型

    解析和扩展表格 配置表示例 配置表模块在编译时,把Excel转化成TSV,并根据Excel的头部信息,生成对应的代码: 比如源码库中的Test.xlsx Excel文件,两个列头,Id和Value,其 ...

  3. 将搜狗词库.scel格式转化为.txt格式

    由于项目中要用到词库,而下载的搜狗词库是.scel格式,所以就用python脚本将搜狗词库.scel格式文件转化为.txt格式文件. #!/bin/python # -*- coding: utf-8 ...

  4. 【转】java将excel文件转换成txt格式文件

    在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...

  5. hive中创建hive-json格式的表及查询

    在hive中对于json的数据格式,可以使用get_json_object或json_tuple先解析然后查询. 也可以直接在hive中创建json格式的表结构,这样就可以直接查询,实战如下(hive ...

  6. robots.txt文件配置和使用方法详解

    robots.txt文件,提起这个概念,可能不少站长还很陌生:什么是robots.txt文件?robots.txt文件有什么作用?如何配置robots.txt文件?如何正确使用robots.txt文件 ...

  7. ini格式数据生成与解析具体解释

    ini格式数据生成与解析具体解释 1.ini格式数据长啥样? watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/ ...

  8. 将Oracle数据库导出为txt格式

    将Oracle数据库导出为txt格式: 方法1: 对于Windows系统,可以采用以下方式: 选择控制面板-->管理工具-->数据源(ODBC),添加一个新的数据源(系统或用户DSN均可) ...

  9. python 保存文本txt格式之总结篇,ANSI,unicode,UTF-8

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAEmCAIAAACmsIlUAAAgAElEQVR4nOydezxU+f/HP49WSstKkZ

随机推荐

  1. Spark on YARN的部署

    Spark on YARN的原理就是依靠yarn来调度Spark,比默认的Spark运行模式性能要好的多,前提是首先部署好hadoop HDFS并且运行在yarn上,然后就可以开始部署spark on ...

  2. C# 连接DB2字符串 Oracle免安装客户端连接字符串

    以下是DB2连接数据库 1)使用IBM.Data.DB2链接DB2数据库 2)必须安装DB2客户端,IBM.Data.DB2在安装的BIN里可以找到 3)注意一下DB2客户端版本问题,我的就是WIN7 ...

  3. Java基础高级一(正则表达式)

    1.正则语法:元字符,量词,范围,组,属性 2.String类常用正则方法split,indexOf,replaceAll 3.Java正则类Pattern,Match而的使用 1.String常用方 ...

  4. 【安装Redis】CentOS7 下安装NodeJs+Express+MongoDB+Redis

    Redis,V3.2,官网l官方链接:http://www.redis.io/download,参考:http://blog.csdn.net/mlks_2008/article/details/19 ...

  5. Python: 处理mongodb文档,怎么让UTC时间转换为本地时间?

    存储数据到MongoDB数据库时,一般我们会加一个更新数据的时间update_time.这时在python代码中 会用到datetime模块以便获取当前系统时间,但是存入到MongoDB数据库时,存储 ...

  6. 显示或隐藏div

    代码来源于博客,如有侵权,请联系我! ASP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了Read ...

  7. https单向认证和双向认证

    单向认证: .clinet<--server .clinet-->server .client从server处拿到server的证书,通过公司的CA去验证该证书,以确认server是真实的 ...

  8. html5 websocket 实时日志推送

    http://blog.csdn.net/neutrojan/article/details/46119645

  9. windows系统 SVN出现 can't open file‘\XXX\txn-current-lock’ 拒绝访问 问题处理

    问题描述:  在新建的svn目录下,提交文件出现 如图错误提示.

  10. Oracle 11203 + ASM安装 for HP UX

    一,安装前准备 1.创建所需组和用户 /usr/sbin/groupadd -g 1000 oinstall/usr/sbin/groupadd -g 1020 asmadmin/usr/sbin/g ...