5

我读过这个问题,我通常会尝试遵循汤姆斯回答的想法,但我有一件事有问题。

如何编写我的程序,以便它将命令行参数视为 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;

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

4

0 回答 0