代码之家  ›  专栏  ›  技术社区  ›  sid_com

在模块中使用win32::console::ansi时如何处理编码?

  •  -1
  • sid_com  · 技术社区  · 6 年前

    Win32::Console::ANSI 默认情况下启用ANSI(win)到OEM(dos)的映射。当我使用 Win32::Console::ANSI 在CPAN模块中,我应该保留此映射,还是应该使用 \e(U ?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Tim Palak Chaudhary    6 年前

    The documentation 概述默认设置的原因:

    它很有用,因为可以使用基于Windows的编辑器键入脚本 (使用Windows代码页)脚本将其消息打印在 控制台使用另一个代码页:不翻译,字符 代码大于127是不同的,打印的消息 可能不可读。

    对于ansi控制台仿真来说,这似乎是一个合理的默认值,因为它的目标是避免不可读的消息。如果,当人们使用您的CPAN模块时,他们可以合理地期望使用一个ANSI控制台,那么最好保持默认设置不变。您可能想要做的是允许人们在加载/配置模块时选择行为作为选项。但无论如何,要在文档中明确说明你在做什么以及为什么。