При чтении XML-файла с помощью perl и XML :: Simple, perl выводит неанглийские символы в шестнадцатеричном виде - PullRequest
1 голос
/ 25 августа 2011

Я пытаюсь прочитать XML-файл и вывести только выбранное количество полей, однако я столкнулся с двумя проблемами (которые, я думаю, связаны), которые я совершенно не смог найти в Google.

XML-файл, с которым я работаю, содержит много неанглийских символов, подробностей и т. Д. *

Когда я запускаю print Dumper ($ data); Я получаю результаты как:

Мальбек Ви \ x {f1} а Доминго Ф. Сармьенто

Когда я пытаюсь прочитать XML и вывести конкретные поля, эти шестнадцатеричные символы становятся знаками вопроса:

Мальбек Ви? А Доминго Ф. Сармьенто

Какие-нибудь советы или, по крайней мере, направление для поиска в 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 Ответ

4 голосов
/ 25 августа 2011

Попробуйте это

binmode(STDOUT, ":utf8");

и обратитесь к этой теме Как я могу вывести UTF-8 из Perl?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...