Thread JSON UTF decode (46 answers)
Opened by bianca at 2013-06-17 06:12

GwenDragon
 2013-06-17 12:16
#168351 #168351
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
K\u00f6ln ist die korrekte Kodierung mit ö als UTF-zeichen.
Data::Dumper macht daraus \x{f6} was eben ein ö ist.

So gehts aber:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;
use JSON;
use LWP::UserAgent;

delete @ENV{ qw(ENV BASH_ENV IFS PATH) };    # make safe!

my $ua = LWP::UserAgent->new();
my $response = $ua->get('http://labs.gwendragon.de/tmp/x.json');

my $content = $response->content;

$Data::Dumper::Useperl = 1;
print Dumper($content);

my $ref = JSON->new->utf8->decode($content);
print Dumper($ref);



Test-Server liefert als Content-Type: application/json; charset=utf-8 aus.

Testlauf auf Windows 7:
~ chcp 1252
Aktive Codepage: 1252.

~ "Perl Programm (neu).pl"
$VAR1 = '{
"Ort1": "Köln",
"Ort2" : "M\\u00f6lln"
}';
$VAR1 = {
'Ort1' => 'Köln',
'Ort2' => 'Mölln'
};
~


Erklärung für Usepp(1): Die Pureperl-Version von Dumper gibts eben anders aus.

Schau dir mal http://cpansearch.perl.org/src/SMUELLER/Data-Dumpe... an.
Funktion qquote Zeile 565 und 718


Editiert von GwenDragon: Copy+Paste-fehler bei Ausgabe des Programms, Hiweis, Erklärung
Last edited: 2013-06-17 12:44:51 +0200 (CEST)

View full thread JSON UTF decode