相关疑难解决方法(0)

如何在Pod和perldoc中使用Unicode字符?

我需要在perl文档中使用utf-8字符.如果我使用:

perldoc MyMod.pm
Run Code Online (Sandbox Code Playgroud)

我看到奇怪的人物.如果我使用:

pod2text MyMod.pm
Run Code Online (Sandbox Code Playgroud)

一切都好.

我使用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
Run Code Online (Sandbox Code Playgroud)

是否有关于在Pod中使用特殊字符的方法?

这是一个使用德国变音符号"Just a Test:äöüßÄÖ"的小例子:

$ 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)
Run Code Online (Sandbox Code Playgroud)

documentation unicode perl perldoc internationalization

21
推荐指数
2
解决办法
2377
查看次数

为什么perldoc将'明斯特'评为'明斯特'

我有一个简单的POD文本文件:

$ cat test.pod 
=encoding UTF-8

Münster
Run Code Online (Sandbox Code Playgroud)

它按照UTF-8编码,根据文件的这个文字十六进制转储:

00000000  3d 65 6e 63 6f 64 69 6e  67 20 55 54 46 2d 38 0a  |=encoding UTF-8.|
00000010  0a 4d c3 bc 6e 73 74 65  72 0a                    |.M..nster.|
0000001a
Run Code Online (Sandbox Code Playgroud)

"ü"被编码为两个字节C3和BC.

但是,当我perldoc在文件上运行时,它将我可爱的格式化UTF-8字符转换为ASCII.

更重要的是,它正确地处理了将"ü"表示为"ue"的德语惯例.

$ perldoc test.pod | cat
TEST(1)               User Contributed Perl Documentation              TEST(1)

Muenster

perl v5.16.3                      2014-06-10                           TEST(1)
Run Code Online (Sandbox Code Playgroud)

它为什么这样做?

是否有一个额外的声明我可以放入我的文件以阻止它发生?


经过额外的调查后,App::perlbrew我发现不同之处在于拥有特定版本的Pod :: Perldoc.

perl-5.10.1    3.14_04    Muenster
perl-5.12.5    3.15_02    Muenster
perl-5.14.4    3.15_04    Muenster
perl-5.16.2    3.17       Münster …
Run Code Online (Sandbox Code Playgroud)

perl perldoc utf-8 perl-pod

12
推荐指数
1
解决办法
160
查看次数

应使用什么字符串来指定Perl POD中的编码,"utf8","UTF-8"或"utf-8"?

可以用UTF-8编写Perl文档.要做到这一点,你应该写在你的POD:

=encoding NNN
Run Code Online (Sandbox Code Playgroud)

但你应该写NNN什么呢?不同来源给出不同的答案.

什么是正确的答案?在POD中写入的正确字符串是什么?

documentation perl encoding utf-8

7
推荐指数
1
解决办法
792
查看次数