Thread JSON und utf8 (25 answers)
Opened by rosti at 2018-05-06 18:58

haj
 2018-05-07 15:55
#188353 #188353
User since
2015-01-07
558 Artikel
BenutzerIn

user image
Sorry, aber jetzt wird's direkt falsch.

Quote
Der Witz ist der: Nach STDOUT o.a. Handle (Dateien) dürfen keine Strings ausgegeben werden. Aber: encode_json() macht ja genau das.


encode_json gibt gar nichts aus. Es konvertiert einen Perl-Skalar in eine UTF-8-codierte Bytewurst.

Die Ausgabe nach STDOUT oder andere Handles erzeugt print. Das erwartet einen Perl-String als Input und erzeugt mit dem I/O-Layer die Bytes für den Output, je nach Encoding des Handle. Nochmal zur Erinnerung: Das Default-Encoding ist nicht UTF-8.

Das JSON-Modul bietet beides: Die nach UTF-8-codierte Bytewurst zur Weiterverarbeitung mit z.B. syswrite oder print mit Encoding ':bytes', oder den Perl-String, den der Nutzer selbst für seinen Ausgabekanal mit beliebigem Encoding in Bytes umsetzen kann (und muss).

View full thread JSON und utf8