【发布时间】:2019-04-24 06:43:51
【问题描述】:
Win32::Console::ANSI 默认启用 ANSI(Win) 到 OEM(Dos) 映射。当我在 CPAN 模块中使用 Win32::Console::ANSI 时,我应该保留此映射还是应该使用 \e(U 禁用此映射?
【问题讨论】:
Win32::Console::ANSI 默认启用 ANSI(Win) 到 OEM(Dos) 映射。当我在 CPAN 模块中使用 Win32::Console::ANSI 时,我应该保留此映射还是应该使用 \e(U 禁用此映射?
【问题讨论】:
The documentation 概述了这是默认设置的原因:
它很有用,因为可以使用基于 Windows 的编辑器键入脚本 (使用 Windows 代码页),脚本在 使用另一个代码页的控制台:没有翻译,字符 大于 127 的代码是不同的,并且打印的消息 可能不可读。
对于 ANSI 控制台仿真来说,这似乎是一个合理的默认设置,因为它旨在避免出现不可读的消息。如果人们在使用您的 CPAN 模块时可以合理地期待 ANSI 控制台,那么保留默认值可能是明智之举。您可能想要做的是允许人们在加载/配置您的模块时选择行为作为选项。但无论如何,请在文档中明确说明您在做什么以及为什么这样做。
【讨论】: