12

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

$ cat test.pod 
=encoding UTF-8

Münster

根据文件的此文字十六进制转储,它以 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

“ü”被编码为两个字节 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)

为什么要这样做?

我可以在我的文件中添加一个额外的声明来阻止它发生吗?


经过进一步调查后,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

但是,如果可能的话,我仍然想要一种使 Pod::Perldoc 3.14、3.15 和 3.19 行为“正确”的方法。

4

1 回答 1

6

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

这个“错误”似乎是在 Perl 5.10 中引入的,也许这在以后的版本中得到了解决。

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

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

于 2014-06-10T09:34:10.853 回答