私はこの質問を読んだことがあり、一般的にトムの回答のアイデアに従おうとしていますが、1 つ問題があります。
コマンドライン引数を UTF8 エンコードとして扱うようにプログラムを作成するにはどうすればよいですか?
2つのオプションがあるようです:
- perl に -CA オプションを使用する
- PERL5OPTS 環境変数を使用します。
問題は、私が自分の perl プログラムをシバンで書いていることです:
#!/usr/bin/env perl
perl は、私が使用しているさまざまなシステムのさまざまな場所にあるためです。
これは、 -CA オプションを使用できないことを意味します (または、機能しないため、方法がわかり#!/usr/bin/env perl -CA
ません。
また、スクリプトを呼び出す前に特別な環境変数を指定する必要は避けたいと思います。
私の唯一の希望は、@ARGV の「手動」デコードです。
use Encode;
@ARGV = map { decode( 'utf8', $_ ) } @ARGV;
または、より良い/より良い方法がありますか?