如何在Perl中正确打印此字符串?

时间:2012-02-26 21:21:32

标签: perl

我想打印出这个字符串:

[2/16/2012] emailed...I honestly do not know - I am an endpoint in sales - I would try contacting our corporate office. <STOP>

当我尝试打印此字符串时,这就是它在终端中的样子:

[2/16/2012] emailed...I honestly do not know û I am an endpoint in sales û I would try contacting our corporate office. <STOP>

如何让终端打印“ - ”字符而不是“û”字符?

2 个答案:

答案 0 :(得分:2)

终端正在尝试使用OEM代码页(通常为437或850),其中字符151确实是ù。你需要做两件事:

  1. 将控制台更改为使用Unicode字体,而不是光栅字体(始终使用OEM代码页)
  2. 将代码页更改为(例如)1252

答案 1 :(得分:0)

您可能会尝试更改STDOUT的编码,例如:

use encoding 'utf8', STDOUT => 'cp850'; # or 'cp1252', change to what your terminal needs

您使用什么系统,以及设置了哪个区域设置?您也可以从use encoding 'utf8';开始。

另一种方法是用简单的破折号替换这些讨厌的角色。有很多方法可以做到,$string_to_print =~ tr/$pesky_character/-/可能是最好的。