所以我正在尝试编写一个perl脚本来读取一个用Latin-1编码的文件.由于某种原因,这只是没有成功.当我尝试简单搜索我知道的文件中的字符时(它在第一行),没有任何显示.我正在使用编码“iso 8859-1”;下面,但我也尝试过binmode(STDIN,“:utf8”);.关于我可能做错了什么以及如何做对的任何建议?
use encoding "iso 8859-1"; while(<>) { if(/ó/gi) { print "Found one!\n"; } }
解决方法
不要使用use encoding pragma:它已经坏了.
在此处指定编码:
use open ":encoding(Latin1)";
或者把它放在开放的地方:
open(FH,"< :encoding(Latin1)",$pathname) || die "can't open $pathname: $!";
或打开后binmode:
binmode(FH,":encoding(Latin1)") || die "can't binmode to encoding Latin1";
如果你正在使用< ARGV>,那么使用open可能是最简单的.
不要忘记在输出流上设置编码.