首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl特殊字符窗口

perl特殊字符窗口
EN

Stack Overflow用户
提问于 2015-02-02 19:15:29
回答 1查看 892关注 0票数 0

我试图在ma perl控制台应用程序的输出中使用德国的特殊字符: ofübut,但我失败了。这是一个具有活动代码页850的德国win7系统。

代码语言:javascript
复制
#!/usr/bin/perl 
use warnings;
use strict;

binmode(STDOUT , ":encoding(cp437)" )  if $^O eq 'MSWin32';
#binmode(STDOUT , ":encoding(cp850)" )  if $^O eq 'MSWin32';
#binmode(STDOUT , ":encoding(cp1252)" ) if $^O eq 'MSWin32';

my @sp_chars = qw/ä ö ü ß Ä Ö Ü/;

foreach my $sp_char ( @sp_chars ) {
  print "$sp_char\n";
}

我会犯这样的错误:

代码语言:javascript
复制
"\x{009f}" does not map to cp1252 at umlaute.pl line 12.

"\x{009f}" does not map to cp850 at umlaute.pl line 12.

"\x{00c3}" does not map to cp437 at umlaute.pl line 12.

我怎样才能得到一个螺旋桨输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 19:44:41

当在源代码中使用utf8字符并使用IO层进行编码时,您应该在perl解析器中打开utf8:

代码语言:javascript
复制
use utf8; 

my $encoding = $^O eq 'MSWin32' ? 'cp850' : 'utf8';
binmode(STDOUT, ":encoding($encoding)" );

print "$_\n" for qw/ä ö ü ß Ä Ö Ü/;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28285039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档