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

Kao*_*oru 12 perl perldoc utf-8 perl-pod

我有一个简单的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
perl-5.16.3    3.19       Muenster
perl-5.16.3    3.17       Münster
perl-5.17.3    3.17       Münster
perl-5.18.0    3.19       Muenster
perl-5.18.1    3.23       Münster
Run Code Online (Sandbox Code Playgroud)

但是,如果可能的话,我仍然希望让Pod :: Perldoc 3.14,3.15和3.19表现得"正确".

Cha*_*hak 6

找到此RT票证http://rt.cpan.org/Public/Bug/Display.html?id=39000

这个"bug"似乎是在Perl 5.10中引入的,也许这在以后的版本中得到了解决.

另请参阅:如何在Perl POD派生的手册页中使用Unicode字符?UTF-8文本的perldoc行为不正确.

您应该添加最新版本的Pod :: Perldoc作为依赖项.