Perl Unicode 美食大全:解码标准文件句柄为 UTF-8

℞ 15: 声明 STD{IN,OUT,ERR} 为 UTF-8

始终在程序边缘进行所需的编码转换。这包括标准文件句柄 STDINSTDOUTSTDERR

perlrun 文档所述,环境变量 PERL_UNICODE 或命令行标志 -C 允许您告诉 Perl 以 UTF-8 编码和解码这些文件句柄,使用 S 选项

     $ perl -CS ...
     # or
     $ export PERL_UNICODE=S

在您的程序中,open 预言允许您一次性设置这些文件句柄的默认编码

     use open qw(:std :utf8);

由于 Perl 使用 I/O 层来实现编码和解码,您也可以在文件句柄上直接使用 binmode 操作符

     binmode(STDIN,  ":encoding(UTF-8)");
     binmode(STDOUT, ":encoding(UTF-8)");
     binmode(STDERR, ":encoding(UTF-8)");

上一节:℞ 14: 解码 @ARGV 为本地编码

系列索引:标准序言

下一节:℞ 16: 解码标准文件句柄为本地编码

标签

反馈

这篇文章有什么问题吗?请在 GitHub 上打开一个问题或拉取请求以帮助我们