Wer deutsche Umlaute in seinem Python-Code verwendet, der wird früher oder später auf diese Fehlerausgabe stoßen: “SyntaxError: Non-ASCII character in file“. Um diesen Fehler auszumerzen muss man explizit einen Zeichensatz in der ersten Zeile seines Codes mit dieser Zeile setzen:
# -*- coding: iso-8859-1 -*-Gegeben ist folgende ASCII-Codierung:
%7b%22email%22%3a%22bn%40bennyn.de%22%2c%22name%22%3a%22Benny%20Neugebauer%22%7d
Wie wir wissen, stellt der ASCII-Code genau 1 Byte (8 Bit) dar. Dazu wird eine Sequenz in der Form %xy angegeben, wobei “xy” eine zweistellige Hexadezimal-Zahl ist, welche die 8-Bit repräsentiert. Ein Blick in die ASCII-Tabelle zeigt uns folgende Kodierung:
%20 = blank (Leerzeichen)
%22 = "
%3a = :
%40 = @
%2c = ,
%7b = {
%7d = }Demnach müsste für unser Beispiel der entsprechende Unicode (UTF-8) so aussehen:
{"email":"bn@bennyn.de","name":"Benny Neugebauer"}In Java lässt sich ASCII-Code in Unicode ganz leicht umwandeln:
1 2 3 | String ascii = "%7b%22email%22%3a%22bn%40bennyn.de%22%2c%22name%22%3a%22Benny%20Neugebauer%22%7d"; String unicode = URLDecoder.decode(ascii, "UTF-8"); System.out.println(unicode); |
Eine wunderbare Übersicht über alle Maskierungen für HTML-Sonderzeichen (engl. “escapes”) nach dem ASCII-Zeichensatz findet man in der HTML ISO-8859-1 Reference.

0