我读过这个问题,我通常会尝试遵循汤姆斯回答的想法,但我有一件事有问题。
如何编写我的程序,以便它将命令行参数视为 UTF8 编码?
看起来我有两个选择:
- 对 perl 使用 -CA 选项
- 使用 PERL5OPTS 环境变量。
问题是我用shebang编写我的perl程序:
#!/usr/bin/env perl
因为 perl 在我使用的各种系统上的不同位置。
这意味着 - 我不能使用 -CA 选项(或者我不知道如何,因为#!/usr/bin/env perl -CA
它不起作用。
我还希望避免在调用脚本之前指定特殊的环境变量。
我唯一希望“手动”解码@ARGV,比如:
use Encode;
@ARGV = map { decode( 'utf8', $_ ) } @ARGV;
还是有更好/更好的方法?