一、檔案編碼問題:
日誌格式可以為utf-8無bom格式 或者 ansi格式編碼。
因為utf-8格式編碼會導致出現一些奇怪的問題,比如,第一行的log或待匹配的關鍵字 查詢不到。
原因是:utf-8編碼的檔案中,bom佔三個位元組
。如果用記事本把乙個文字檔案另存為utf-8編碼方式的話,
用ue開啟這個檔案,切換到十六進製制編輯狀態就可以看到開頭的fffe了。
切記。尤其是手動寫了關鍵字列表需要去log中查詢時一定要注意編碼格式不要是utf-8格式。
與utf—8(無bom)格式相比有什麼不同)
二、讀檔案匹配過程編碼問題:
讀檔案後,在匹配的時候注意是應該用「正規表示式」還是用「eq」。
前幾天做乙個詞條pv統計的工作,兩種方式得到的結果不一樣。找了很久的原因,各種編碼方式換來換去的試用啊,最後的原因為:
1、keywords.txt的編碼改為utf-8無bom格式,兩種方式的pv差距縮小了一些。
2、將使用re匹配的規則換用eq來比較,兩種方式的pv結果一樣了。
三、附屬對比**:
1、笨方法:
$_ = decode('utf8',$_);
#if( $_ =~/(北京首都機場賓館|廣州維景大酒店|德勝酒店|三亞萬豪度假酒店|伯瓷酒店|竹灣酒店|葡京酒店|凱悅酒店|華威酒店|靈山大佛|黿頭渚|東部華僑城|張家界|周莊|象鼻山|千島湖\[杭州\]) (\d+)/)+=$doc_pv;
$totalnum+=$doc_pv;
}}
2、效率高的方法,切記,keywords.txt的編碼格式要為
utf-8無bom格式.
while()
)) += $2;
$sumpv += $2;
}
日誌分析中檔案編碼問題以及讀檔案匹配問題總結
一 檔案編碼問題 日誌格式可以為utf 8無bom格式 或者 ansi格式編碼。因為utf 8格式編碼會導致出現一些奇怪的問題,比如,第一行的log或待匹配的關鍵字 查詢不到。原因是 utf 8編碼的檔案中,bom佔三個位元組 如果用記事本把乙個文字檔案另存為utf 8編碼方式的話,用ue開啟這個檔...
Python檔案中文編碼問題
需要讀取utf 8編碼的中文檔案,先利用sublime text軟體將它改成無dom的編碼,並且在第一行寫 encoding utf 8 然後用以下 with codecs.open note path,r utf 8 as f line f.readline print line 這樣就可以正確地...
深入分析Java Web 03 中文編碼問題
編碼問題是開發人員必須接觸的問題,也是必須重視的問題,而針對編碼比較重點的其實就是中文編碼,如何讓中文的顯示不出現亂碼,是開發人員注意的重中之重。人類有很多種語言,但是在計算機中,只有0和1,通過計算機中基本的儲存單元 位元組 byte 來表如此眾多的語言,顯然是乙個非常巨大的工程,我們可以把計算機...