例:é
にé
ユーザーがフランス語の文字セットではなくASCII形式の文字セットを取得することがあります...だから、誰でも私を助けることができますか?
これは、Perlの組み込みEncode
モジュールによって最もよく処理されます。文字列を変換する方法の簡単な例を次に示します。
my $standard_string = decode("ascii", $ascii_string);
($standard_string
その後、システム上にあるPerlの標準エンコーディングになります。言い換えれば、その時点からそれについて心配する必要はありません)。
リンクされたドキュメントには、入力ファイルのエンコーディングの設定など、実行できる他の多くの例が記載されています。関連する便利なモジュールはですEncode::Guess
。これは、文字エンコードが不明な場合にそれを判別するのに役立ちます。
HTMLエンティティをUTF-8に変換したいようです。これを行うには、HTML::Entitiesとdecode_entities
関数を使用します。
これにより、特定のエンコーディングが添付されていない Perl 文字列が得られます。文字列を UTF-8 エンコーディングで出力するには:
print Encode::encode_utf8(decode_entities($html_string));
または、STDOUT に UTF-8 PerlIO レイヤーを設定すると、Perl がすべてを UTF-8 でエンコードします。複数の文字列を出力する場合に便利です。
binmode STDOUT, ':utf8';
print decode_entities($html_string);