在模块中使用Win32 :: Console :: ANSI时如何处理编码?

时间:2018-11-21 16:24:48

标签: windows perl encoding

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

1 个答案:

答案 0 :(得分:2)

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

  

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

对于ANSI控制台仿真,这似乎是明智的默认设置,因为它旨在避免出现不可读的消息。如果人们在使用您的CPAN模块时可以合理地期望使用ANSI控制台,那么最好保留默认设置。您可能想做的就是允许人们在加载/配置模块时选择行为作为选项。但是无论如何,请在文档中明确说明您在做什么以及原因。