Perl Unicode 美食大全:将标准文件句柄解码为区域编码
℞ 16: 声明 STD{IN,OUT,ERR}
使用区域编码
始终在程序的边缘进行转换到和从所需编码。这包括标准文件句柄 STDIN
、STDOUT
和 STDERR
。虽然现代操作系统在文件句柄设置中支持 UTF-8 是最常见的情况,但您可能需要使用其他编码。
Perl 可以尊重您当前的区域设置以用于其默认文件句柄。首先,从 CPAN 安装 Encode::Locale 模块。
# cpan -i Encode::Locale
use Encode;
use Encode::Locale;
# or as a stream for binmode or open
binmode STDIN, ":encoding(console_in)" if -t STDIN;
binmode STDOUT, ":encoding(console_out)" if -t STDOUT;
binmode STDERR, ":encoding(console_out)" if -t STDERR;
Encode::Locale
模块允许您使用“终端期望的任何编码”为终端的输入和输出文件句柄。它还允许您指定“文件系统用于文件名的任何编码”;请参阅文档以获取更多信息。
系列索引:标准前言
标签
反馈
这篇文章有问题吗?请通过在 GitHub 上打开问题或拉取请求来帮助我们。