Txt格式配置表无法解析的问题——BOM
今天再次遇到同一個問題:策劃給來一個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文件頭刪除即可。
轉載于:https://www.cnblogs.com/lwblog/p/4918751.html
總結
以上是生活随笔為你收集整理的Txt格式配置表无法解析的问题——BOM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 安装QT5
- 下一篇: LeetCode OJ - Valid