1. ホーム
  2. perl

[解決済み] PerlからUTF-8を出力するにはどうしたらいいですか?

2022-08-21 06:49:14

質問

私は、Perl スクリプトで utf8 プラグマを使って Perl スクリプトを書こうとしていますが、予期しない結果になっています。 Mac OS X 10.5 (Leopard) を使用しており、TextMate で編集しています。 エディターとオペレーティング システムの両方の私の設定はすべて、utf-8 形式でファイルを書き込むようにデフォルト設定されています。

しかし、テキスト ファイルに次のように入力し、それを ".pl" として保存し、実行すると、非 ASCII 文字の代わりに、フレンドリーな "diamond with a question mark" が表示されます。

#!/usr/bin/env perl -w

use strict;
use utf8;

my $str = 'Çirçös';
print( "$str\n" );

何が間違っているのでしょうか?私は出力に 'Çirçös' を期待しますが、私は代わりに '�ir�s' を得ます。

どのように解決するのですか?

use utf8; は、Unicodeを有効にしません。 出力 - は、プログラムでUnicodeを入力することを可能にします。これをプログラムに追加して、あなたの print() 文の前に追加します。

binmode(STDOUT, ":utf8");

これが役に立つかどうか見てみましょう。これで STDOUT が普通の ASCII ではなく UTF-8 で出力されるはずです。