linux – 修复非相干编码文本文件的编码
发布时间:2020-12-14 01:03:50 所属栏目:Linux 来源:网络整理
导读:我有一个很长的文本文件,在后续的文本块(iso或utf-8)中使用明显不同的编码.这是使用附加文字的结果file.bib并从不同来源(网页)复制和粘贴. 原则上可以区分这些块,因为它们是bibtex条目 @article{key,author={lastname,firstname},...} 我想将它转换为一个连
我有一个很长的文本文件,在后续的文本块(iso或utf-8)中使用明显不同的编码.这是使用>>附加文字的结果file.bib并从不同来源(网页)复制和粘贴.
原则上可以区分这些块,因为它们是bibtex条目 @article{key,author={lastname,firstname},...} 我想将它转换为一个连贯的utf-8文件,因为它似乎崩溃了我的bibtex查看器(kbibtex).我知道我可以使用iconv转换整个文件的编码,但我想知道是否有办法修复我的文件而不破坏某些条目. 解决方法
如果您可以为每一行假设统一编码,并且您知道备用编码:
#!/usr/bin/perl use Encode; while(<>) { my $line; eval { $line=Encode::decode_utf8( $_ ); } if ($@) $line=Encode::decode( 'iso-8859-1',$_ ); #not UTF-8 # Now $line is UNICODE.Do something to it } 如果行是混合编码,您仍然可以通过单词执行相同操作,但您仍然知道备用编码是什么.如果不知道备用编码,或者你有多个,你需要使用一些编码猜测库,这可能会猜错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |