在Debian Linux(Bash)上为perl5(修订版5版本22颠覆2)执行以下操作(以俄语输出有关我尝试打开不存在的目录的消息):
LANGUAGE=ru_RU.UTF-8 perl -Mstrict -Mwarnings -Mlocale -e 'opendir my $fh, "afdsfd"; print $!, "\n"'
但是在FreeBSD perl5(修订版5版本20颠覆版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
答案 0 :(得分:0)
我发现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