当我使用Simple::XML转储xml时,我最终得到了包含转义字符(如\x{e6} )的字符串。下面是一个例子
#!/usr/bin/perl
use Data::Dumper;
use Encode;
$s="sel\x{e6}re";
decode_utf8($s);
print Dumper $s;输出
$VAR1 = 'sel�re';问题
我怎么才能让这个奇怪的角色进入UTF-8?
更新
以下是完整的xml输出。http://pastebin.com/Sitm01kh
更新2
正如注释中指出的那样,XML很好,但是当我
my $ref = XMLin($xml, ForceArray => 1, KeyAttr => { Element => 'Id' });
print Dumper $ref;发布于 2016-03-16 13:46:13
#!/usr/bin/perl
use DDP;
use XML::Simple;
my $xml = '<Element Id="496669" ParentId="495555" Name="Klasselærere" ContextName="01005 Advanced Engineering Mathematics 1 E15/Klasselærere" IsArchived="false" SubgroupCount="0" />';
my $result = XMLin($xml);
binmode(STDOUT, ":utf8");
print p($result)产生以下输出
{
ContextName "01005 Advanced Engineering Mathematics 1 E15/Klasselærere",
Id 496669,
IsArchived "false",
Name "Klasselærere",
ParentId 495555,
SubgroupCount 0
}数据:Dumper本身与unicode一起工作很奇怪。使用Data::打印机查看unicode字符
发布于 2016-03-16 13:50:05
我猜您的终端无法显示caracter \xe6 6。
如果您在linux上,输入“locale”以查看终端的设置。
您可以尝试这样设置终端编码:
出口LC=utf-8
https://stackoverflow.com/questions/36036769
复制相似问题