2016-07-14 3 views
0

에 펄에서 작동하지 않습니다 다음 작품은 데비안 리눅스에 perl5의 대한 (개정 5 버전 22 전복 2) (강타) (AN 존재하지 않는 디렉토리를 엽니 다 내 시도에 대해 러시아어 메시지를 출력)을 수행합니다로케일은 FreeBSD의

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

아, LANGUAGE'는 GNU 확장이다 '것을 발견했다. 그러나 이것은'LANGUAGE'를'LC_ALL' 또는'LANG' 또는'LC_MESSAGES'로 바꾸면 내 문제를 해결하지 못합니다 :-( – porton

답변

0

나는 KOI8-R와 FreeBSD의 10.3-RELEASE 일 러시아 메시지는하지만, 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