Как использовать символы Юникода в Pod и perldoc?
-
03-07-2019 - |
Вопрос
Мне нужно использовать символы utf-8 в моей документации Perl.Если я использую:
perldoc MyMod.pm
Я вижу странных персонажей.Если я использую:
pod2text MyMod.pm
всё хорошо.
Я использую Ubuntu/Debian.
$ locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8
Есть ли инструкция по использованию специальных символов в Pod?
Вот небольшой пример использования немецких умлаутов «Просто проверка:äöüßÄÖ":
$ perldoc perl/MyMod.pm
<standard input>:72: warning: can't find character with input code 159
<standard input>:72: warning: can't find character with input code 150
MyMod(3) User Contributed Perl Documentation MyMod(3)
NAME
MyMod.pm - Just a Test: äöüÃÃÃ
perl v5.10.0 2008-10-16 MyMod(3)
Решение
Использовать =encoding utf-8
в качестве первой директивы POD в вашем файле и используйте довольно недавнюю директиву perldoc
(например с 5.10-maint).Тогда это должно сработать.
Другие советы
Нашел этот билет RT.... http://rt.cpan.org/Public/Bug/Display.html?id=39000
Эта «ошибка», кажется, появилась в Perl 5.10, и, возможно, необходимо использовать этот pod2man --utf8.
perldoc -t MyMod.pm
Из руководства по perldoc:
-t Отображать модуль с использованием pod2text вместо Pod::Man и groff (-t используется по умолчанию в Win32, если не указан -n)