如何在 Pod 和 perldoc 中使用 Unicode 字符?
Posted
技术标签:
【中文标题】如何在 Pod 和 perldoc 中使用 Unicode 字符?【英文标题】:How do I use Unicode characters in Pod and perldoc? 【发布时间】:2010-09-17 11:55:50 【问题描述】:我需要在我的 perl 文档中使用 utf-8 字符。 如果我使用:
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 中使用特殊字符的 HowTo?
这是一个使用德语变音符号“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)
【问题讨论】:
什么奇怪的字符?问号?盒子?奇怪的 ANSI 格式代码? 【参考方案1】:使用 =encoding utf-8
作为文件中的第一个 POD 指令,并使用相当新的 perldoc
(例如来自 5.10-maint)。那么它应该可以工作。
【讨论】:
这个答案似乎是正确的。谢谢。我在“perldoc perlpod”中找到了更多详细信息。 该文档指示“=encoding utf8”而不是“=encoding utf-8”。但是在 Ubuntu 上使用 5.18 似乎没有必要,在 Mac OS X 10.10.4 上的 5.16 中似乎两者都不起作用。【参考方案2】:找到这张 RT 票....http://rt.cpan.org/Public/Bug/Display.html?id=39000
这个“bug”似乎是 Perl 5.10 引入的,也许需要使用这个 pod2man --utf8。
【讨论】:
【参考方案3】:perldoc -t MyMod.pm
来自 perldoc 手册:
-t 使用 pod2text 代替 Pod::Man 和 groff 显示 pod(-t 是 win32 上的默认值,除非指定了 -n)
【讨论】:
以上是关于如何在 Pod 和 perldoc 中使用 Unicode 字符?的主要内容,如果未能解决你的问题,请参考以下文章