Txt格式配置表無法解析的問題——BOM
今天再次遇到同一個(gè)問題:策劃給來一個(gè)Txt格式配置表,我用解析類去讀取,返回的結(jié)果為空。解析類參數(shù)是:主鍵key,文件名fileName,錯(cuò)誤提示errorTip。
寫讀取語句的時(shí)候,主鍵key我是直接從txt文件中復(fù)制出來,它是txt文件的第一個(gè)字符串,文件名fileName也是直接復(fù)制文件名。
由于已經(jīng)不是第一次遇到,這次決定不能再視而不見。
首先在解析類里打印,發(fā)現(xiàn)其他配置表都正常,就是這個(gè)讀取語句中打印出來的key,看起來一模一樣,但是就是無法被識(shí)別為與程序讀取到的key是相等的,想起上次看博客時(shí)提到微軟的記事本會(huì)在文件里加標(biāo)記符號,于是刪除key再手打,發(fā)現(xiàn)依然如故。
回到讀取語句,發(fā)現(xiàn)刪除直接復(fù)制過來的key字符串時(shí),刪除完key內(nèi)容之后,想要繼續(xù)刪除包含該key的“符號時(shí),光標(biāo)依然在原處,這才發(fā)現(xiàn)“符號后有一個(gè)看不見的字符。于是google Txt文件頭的相關(guān)資料,了解到:文本文件編碼時(shí),會(huì)在文件頭添加字節(jié)順序標(biāo)記(Byte Order Mark), 用于標(biāo)識(shí)文件是采用那種格式的編碼。一般的文本編輯器是看不見這個(gè)標(biāo)記的(實(shí)測Vim可以看見),由于與文件頭相連,所以直接復(fù)制文本文件開頭的字符串時(shí)會(huì)把這個(gè)標(biāo)記一起復(fù)制。最后導(dǎo)致文本解析類判定讀取語句給的key參數(shù)(包含BOM)與解析類中文本讀取方法所讀取到的key不一致。
解決辦法:下次寫讀取文本語句時(shí),莫偷懶直接復(fù)制,自己手動(dòng)敲即可?;蛘邚?fù)制過來的時(shí)候,光標(biāo)跳到string頭部刪除一次不可見的BOM。
PS:如何生成無BOM的文本文件:
1、notepad++ 格式欄有轉(zhuǎn)換為無BOM格式的選項(xiàng)。
2、Vim打開文件可以看到BOM文件頭刪除即可。
浙公網(wǎng)安備 33010602011771號