Locale 在 FreeBSD 上的 Perl 中不起作用



以下内容确实有效(输出一条俄语消息,关于我尝试打开一个不存在的目录)在 Debian Linux (Bash 上) 上的 perl5(修订版 5 版本 22 subversion 2):

LANGUAGE=ru_RU.UTF-8 perl -Mstrict -Mwarnings -Mlocale -e 'opendir my $fh, "afdsfd"; print $!, "n"'

但是在 FreeBSD perl5 (修订版 5 版本 20 subversion 3) 上,它会用英语打印消息。为什么它不能在 FreeBSD 上运行?


在 FreeBSD 上:

$ locale -a | grep ru
ru_RU.CP1251
ru_RU.CP866
ru_RU.ISO8859-5
ru_RU.KOI8-R
ru_RU.UTF-8

我发现 FreeBSD 10.3-RELEASE 上的俄语消息适用于 KOI8-R,但不适用于 UTF-8。

例:

perl -Mstrict -Mwarnings -MPOSIX -e 'setlocale(POSIX::LC_ALL, "ru_RU.KOI8-R"); opendir my $fh, "afdsfd"; print $!, "n"' | iconv -f KOI8-R -t UTF-8

相关内容

  • 没有找到相关文章

最新更新