使用perl和XML :: Simple读取XML文件,perl将非英语字符输出为十六进制

时间:2011-08-25 12:39:49

标签: perl

我正在尝试读取一个XML文件,并只输出一些选定数量的字段,但是我遇到了两个问题(我认为这些问题是相关的),我在google搜索时完全失败了。

我正在使用的XML文件包含许多非英文字符,äöåéœ...等等。

当我运行print Dumper($ data)时; 我得到的结果如下:

Malbec Vi a Domingo F Sarmiento

当我尝试读取XML并输出特定字段时,这些十六进制符号将成为问号:

Malbec Vi?a Domingo F Sarmiento

任何提示或至少指向google搜索的方向?

代码如下:

#!/usr/bin/perl -w
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;


# What file to use?
my $file = "systemet.xml";
# Read in the data
my $data = XMLin($file);
# Let's get some stuff!
foreach my $status (@{$data->{artikel}}) {
print $status->{namn} . "\n";
}

感谢您的帮助和对不起,如果我听起来有点无知,那可能是因为我。

1 个答案:

答案 0 :(得分:4)

试试这个

binmode(STDOUT, ":utf8");

并参考此帖子How can I output UTF-8 from Perl?