Thread JSON UTF decode
(46 answers)
Opened by bianca at 2013-06-17 06:12
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) |