Thread JSON und utf8
(25 answers)
Opened by rosti at 2018-05-06 18:58
Ob es einem nun gefällt oder nicht: Strings in Perl sind keine "Rohdaten". Die Vorgehensweise, ein 'ü' in einer UTF-8-codierten Quelldatei ohne use utf8 zu schreiben und mit print im Default-Encoding wieder auszugeben, funktioniert deswegen, weil Perl per Default byte-orientiert liest und byte-orientiert schreibt (beinuhe: ein "\n" wird auf Windows in zwei Bytes expandiert). Die Ausgabe hat dabei das gleiche Encoding wie der Quelltext, und solange nicht aus anderen Quellen richtig verarbeitete UTF-8-Strings kommen, geht es gut.
Es gibt übrigens eine Kurzschreibweise für das, was Du brauchst: Code: (dl
)
print to_json($r),"\n"; # Aequivalent zu print JSON->new->utf8(0)->encode($r),"\n"; |