Get character from ASCII code in PHP, Java and JavaScript

The lower case letter „a“ has ASCII code „97“ and can be generated in PHP like this:

<?php
  $a = chr(97);
  echo $a;
?>

In JavaScript, the same can be accomplished by:

<script type="text/javascript">
  var a = String.fromCharCode(97);
  document.write(a);
</script>

And this is how it works in Java:

public static void main(String[] args){
  String a = new Character((char) 97).toString();
  System.out.println(a);
}

ASCII Herzen schreiben

Alle kennen es, alle lieben es. Das ASCII-Herz. Gemeint ist damit dieses Herzchen-Symbol: ♥. Das Witzige ist aber, dass das Herz gar nicht in den 128 Zeichen der ASCII-Zeichentabelle vorkommt, sondern Zeichen Nummer 9829 im Unicode ist. In frühen Jahren hat man das aber in Internetforen falsch aufgeschnappt und die Herzen mit ASCII-Arts in Verbindung gebracht, weshalb noch immer viele nach dem Begriff „ASCII Herz“ suchen.

Möchte man das Herz in einem HTML-Dokument mit UTF-8 Kodierung darstellen, so gibt es zwei Wege dafür. Einmal als Hex-Code: &#x2665 und einmal als Dezimal-Code: &#9829.

Unter Windows kann man das Herz übrigens durch gleichzeitiges Drücken der Alt-Taste zusammen mit der Zahl 3 (auf dem Num-Block) einfügen. Ein weiterer Weg führt über die Windows Zeichentabelle (Start -> Ausführen -> charmap.exe):

SyntaxError: Non-ASCII character in file

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 -*-

ASCII-Code in Unicode (UTF-8) mit Java umwandeln

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);