8

だから私はLatin-1でエンコードされたファイルを読み取るためのperlスクリプトを書こうとしています。何らかの理由で、これはうまくいきません。ファイルにあることがわかっている(最初の行にある)文字を簡単に検索しようとすると、何も表示されません。use encoding"iso8859-1"を使用しています。以下ですが、 binmode(STDIN、 ":utf8");も試しました。。私が間違っているかもしれないこと、そしてそれを正しくする方法についての提案はありますか?

use encoding "iso 8859-1";

while(<>)
{
    if(/ó/gi)
    {
    print "Found one!\n";
    }
}
4

1 に答える 1

18

use encodingプラグマを使用しないでください:それは壊れています。

ここでエンコーディングを指定します。

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>は、use openおそらく最も簡単です。

出力ストリームにもエンコーディングを設定することを忘れないでください。

于 2010-11-19T01:23:49.797 に答える