Perl 中的 Unicode 处理全解析
1. 标准输入输出错误流的编码声明
在 Perl 中,我们可以通过多种方式声明标准输入(STDIN)、标准输出(STDOUT)和标准错误输出(STDERR)的编码。
- 声明为 UTF - 8 编码
可以使用命令行选项、环境变量或者显式调用binmode函数:
$ perl -CS… $ export PERL_UNICODE=S use open qw(:std :utf8); binmode(STDIN, ":utf8"); binmode(STDOUT, ":utf8"); binmode(STDERR, ":utf8");- 声明为本地编码
首先要安装Encode::Locale模块,然后可以使用如下代码:
# cpan -i Encode::Locale use Encode; use Encode::Locale; binmode STDIN, ":encoding(console_in)" if -t STDIN; binmode STDOUT, ":encoding(console_out)" if -t STDOUT; binmode STDERR, ":encoding(console_out)" if -t STDERR;