使撇号在 perldoc 中正确呈现

Posted

技术标签:

【中文标题】使撇号在 perldoc 中正确呈现【英文标题】:Making apostrophes render correctly in perldoc 【发布时间】:2013-08-13 04:24:28 【问题描述】:

我不知道如何在我的 Perl 文档中正确显示撇号。例如,文本'test' 显示为âtestâ

E<39> 也呈现为 â 还有I<'> 还有S<'> 还有E<apos> C<'> 呈现为 "'"(显然终端不是问题) F<'> 呈现为下划线 â

我也尝试过运行 perldoc-T-n nroff-n troff,但没有任何区别。使用-t 运行修复了撇号问题,但也会杀死所有其他文本属性。

我已经忍受了一段时间了,但它真的开始让我恼火了。如何让它们正确显示?

【问题讨论】:

问题是perldoc是基于nroff的,这些字符并没有映射到自己。在 nroff 中,您可以使用 \ 作为替换来获取这些字符。见perldoc renders incorrectly 【参考方案1】:

@hwnd 的bug report 将我带到LANG 环境变量。通过将其从 en_US.UTF-8 更改为 en_US 我可以正确显示 perldocs。不确定这是否会在其他地方引起问题,但到目前为止我还没有遇到任何问题。

【讨论】:

这也是我最终所做的。如其他地方所述,问题在于某些字符的编码差异以及 perldoc 用于格式化和呈现 pod 的各种程序。【参考方案2】:

升级Pod::Perldoc 并使用-o term 后端。

【讨论】:

【参考方案3】:

不能说我对这个问题了解很多,但过去当字符显示不正确时,这对我有用:

binmode(STDOUT, "utf-8");

【讨论】:

以上是关于使撇号在 perldoc 中正确呈现的主要内容,如果未能解决你的问题,请参考以下文章

perldoc perlxxx 选项是啥?

Discord:命令参数中的撇号在 C# 中不起作用

为啥 IO::Pty 和 Expect 模块可以帮助解决 open2 的障碍?

Perl模块的安装和使用

python 结构解压

pydoc介绍