日志分析中文件编码问题以及读文件匹配问题总结
2012-07-26 16:44
92 查看
一、文件编码问题:
日志格式可以为 UTF-8无BOM格式 或者
ANSI格式编码。
因为UTF-8格式编码会导致出现一些奇怪的问题,比如,第一行的log或待匹配的关键字 查询不到。
原因是:UTF-8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开头的FFFE了。
切记。尤其是手动写了关键字列表需要去log中查找时一定要注意编码格式不要是UTF-8格式。
http://blog.sina.com.cn/s/blog_570f6d940100h3vk.html(UTF—8与UTF—8(无bom)格式相比有什么不同)
二、读文件匹配过程编码问题:
读文件后,在匹配的时候注意是应该用“正则表达式”还是用“eq”。
前几天做一个词条pv统计的工作,两种方式得到的结果不一样。找了很久的原因,各种编码方式换来换去的试用啊,最后的原因为:
1、keywords.txt的编码改为UTF-8无BOM格式,两种方式的PV差距缩小了一些。
2、将使用re匹配的规则换用eq来比较,两种方式的PV结果一样了。
汗啊~~~
三、附属对比代码:
1、笨方法:
2、效率高的方法,切记,keywords.txt的编码格式要为UTF-8无BOM格式.
日志格式可以为 UTF-8无BOM格式 或者
ANSI格式编码。
因为UTF-8格式编码会导致出现一些奇怪的问题,比如,第一行的log或待匹配的关键字 查询不到。
原因是:UTF-8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开头的FFFE了。
切记。尤其是手动写了关键字列表需要去log中查找时一定要注意编码格式不要是UTF-8格式。
http://blog.sina.com.cn/s/blog_570f6d940100h3vk.html(UTF—8与UTF—8(无bom)格式相比有什么不同)
二、读文件匹配过程编码问题:
读文件后,在匹配的时候注意是应该用“正则表达式”还是用“eq”。
前几天做一个词条pv统计的工作,两种方式得到的结果不一样。找了很久的原因,各种编码方式换来换去的试用啊,最后的原因为:
1、keywords.txt的编码改为UTF-8无BOM格式,两种方式的PV差距缩小了一些。
2、将使用re匹配的规则换用eq来比较,两种方式的PV结果一样了。
汗啊~~~
三、附属对比代码:
1、笨方法:
$_ = decode('utf8',$_); #if( $_ =~/(北京首都机场宾馆|广州维景大酒店|德胜酒店|三亚万豪度假酒店|伯瓷酒店|竹湾酒店|葡京酒店|凯悦酒店|华威酒店|灵山大佛|鼋头渚|东部华侨城|张家界|周庄|象鼻山|千岛湖\[杭州\]) (\d+)/){###开始导致PV值大的原因 if( $_ =~/(.*) (\d+)/){ if($1 eq "北京首都机场宾馆"|$1 eq "广州维景大酒店"|$1 eq "德胜酒店"|$1 eq "三亚万豪度假酒店"|$1 eq "伯瓷酒店"|$1 eq "竹湾酒店"|$1 eq "葡京酒店"|$1 eq "凯悦酒店"|$1 eq "华威酒店"|$1 eq "灵山大佛"|$1 eq "鼋头渚"|$1 eq "东部华侨城"|$1 eq "张家界"|$1 eq "周庄"|$1 eq "象鼻山"|$1 eq "千岛湖[杭州]"){####后来正确的PV值 my ($doc_title, $doc_pv) = ($1,$2); print $doc_title."\t".$doc_pv."\n"; $docInfo{$doc_title}{'pv'}+=$doc_pv; $totalNum+=$doc_pv; }}
2、效率高的方法,切记,keywords.txt的编码格式要为UTF-8无BOM格式.
while(<FH1>) { chomp($_); if($_=~/(.*)\s(\d*)/ && defined($wordhash{$1})) { print decode('utf8',$_),"\n"; $wordhash{$1} += $2; $sumPV += $2; }
相关文章推荐
- 工程师手记-关于KDC证书、10006事件以及userenv日志文件的问题
- 【Android】读取txt文件的内容以及其编码问题
- 转载+原创 使用记事本以及sqlyog编辑文件产生的文件编码格式问题
- innodb存储引擎之二进制日志文件ROW和STATEMENT格式以及重做日志文件分析与系统恢复详解(未完待续)
- ajax图片上传及时回显图片,自己总结 + ajaxFileUpload 上传文件 以及 返回值 带 <pre> 标签问题
- mysql5.7日志时间戳(log_timestmaps)与系统时间不一致问题以及日志报Got an error reading communication packets情况分析
- 用hive分析多服务器合并日志问题总结
- clistctrl知识点总结、文件打开弹框以及一些小问题的解决
- Emacs复制粘贴乱码问题以及修改当前文件编码
- 解决log4net独占日志文件的问题以及 log4net的各种输出配置(Appender)
- 解决log4net独占日志文件的问题以及 log4net的各种输出配置(Appender)
- mysql5.7.17日志时间戳(log_timestmaps)与系统时间不一致问题以及日志报Got an error reading communication packets情况分析
- IOS学习日志---1:TableView下拉刷新以及各种失败问题总结
- PHP文件上传问题总结——文件大小检测以及大文件上传处理
- JAVA源文件编码问题总结
- GZIP压缩原理分析(09)——第四章 基于gzip的HTTP压缩详解(四03) 处理细节(关于流压缩的问题)以及本章总结
- 当JSP文件和JS文件编码不一致的问题,以及UTF-8的BOM问题
- Linux解决乱码问题以及查看文件编码方式
- 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换
- 解决log4net独占日志文件的问题以及 log4net的各种输出配置(Appender)