将参数视为UTF-8编码?

chu*_*k4e 5 unicode perl utf-8 command-line-arguments

我已经阅读了这个问题,我一般都会尝试遵循汤姆斯回答的想法,但我有一个问题.

如何编写程序以便将命令行参数视为UTF8编码?

看起来我有两个选择:

  • 使用-CA选项perl
  • 使用PERL5OPTS env变量.

问题是我用shebang写了我的perl程序:

#!/usr/bin/env perl
Run Code Online (Sandbox Code Playgroud)

因为perl在我正在使用的各种系统上的不同位置.

这意味着 - 我不能使用-CA选项(或者我不知道如何,因为#!/usr/bin/env perl -CA不起作用.

我还希望避免在调用脚本之前指定特殊的env变量.

是我唯一的希望"手动"解码@ARGV,如:

use Encode;
@ARGV = map { decode( 'utf8', $_ ) } @ARGV;
Run Code Online (Sandbox Code Playgroud)

还是有更好/更好的方式?