1. 程式人生 > >UTF-8和UTF-8無BOM,一個會導致文件中中文變量無法匹配的bug

UTF-8和UTF-8無BOM,一個會導致文件中中文變量無法匹配的bug

阿裏旺旺 bsp bom logs 文件 匹配 文件的 程序 資料

昨晚用dom4j中的selectSingleNode解析xml,匹配節點。

技術分享

發現匹配不到,但是確實存在該節點技術分享

將regex改為regex1後則可以匹配,也就是說文件中的“阿裏旺旺”和程序中的“阿裏旺旺”不相等。

技術分享

此時有經驗的人都會想到編碼問題,於是我嘗試各種編碼發現都不行,結果最後在此處發現UTF-8還有兩種格式

技術分享

嘗試講文件換成UTF-8無BOM格式則匹配成功

技術分享

查閱資料發現BOM其實是一個編碼標識符,用來標識該文件的編碼的,因此windows下程序讀取文件的時候會有編碼問題,因此在需要讀取中文並且做匹配的時候,請使用UTF-8無BOM格式編碼的文件。

UTF-8和UTF-8無BOM,一個會導致文件中中文變量無法匹配的bug