Java „kann Unicode“. XML „kann Unicode“. Somit kann auch PDFUnit Unicode. In Kapitel 7: „Unicode“ wird das Thema Unicode ausführlich beschrieben.
Dieses Kapitel beschreibt ein kleines Werkzeug, das einen Unicode-String in seinen ASCII-Hex-Code umwandelt, damit sie diesen in Ihren Tests verwenden können. Für wenige „unlesbare“ Zeichen ist dieser Weg einfacher, als einen neuen Font auf Ihrem Rechner zu installieren. Falls Sie das überhaupt dürfen.
Das Programm ConvertUnicodeToHex
konvertiert eine beliebige Zeichenkette in ASCII-Code und „escaped“
dabei alle Nicht-ASCII-Zeichen in ihren jeweiligen Unicode-Hex-Code.
Beispielsweise wird das Euro-Zeichen in \u20AC
umgewandelt.
Die Eingabedatei selber kann in einem beliebigen Encoding vorliegen, es muss nur vor der Programmausführung korrekt gesetzt sein.
Das Javaprogramm wird mit dem Parameter -D
gestartet:
:: :: Converting Unicode content of the input file to hex code. :: @echo off setlocal set CLASSPATH=./lib/pdfunit-2015.10/*;%CLASSPATH% set TOOL=com.pdfunit.tools.ConvertUnicodeToHex set OUT_DIR=./tmp set IN_FILE=convert-unicode-to-hex.in.txt java -Dfile.encoding=UTF-8 %TOOL% %IN_FILE% %OUT_DIR% endlocal
Der vorletzte Parameter ist die Eingabedatei, der letzte Parameter das Ausgabeverzeichnis.
Die im Skript verwendete Eingabedatei convert-unicode-to-hex.in.txt
enthält folgende Werte:
äöü € @
Der Name wird automatisch aus dem Namen der Eingabedatei abgeleitet.
Die Datei _convert-unicode-to-hex.out.txt
enthält dann
den Hex-Code:
#Unicode created by com.pdfunit.tools.ConvertUnicodeToHex #Wed Jan 16 21:50:04 CET 2013 convert-unicode-to-hex.in_as-ascii=\u00E4\u00F6\u00FC \u20AC @
Die Ausgabedatei wird im Encoding der Java-Runtime erstellt. Dazu wird
der Wert der Umgebungsvariablen file.encoding
ausgelesen.
Die Eingabe selber wird „getrimmt“. Wenn Sie für Ihren Test Leerzeichen am Anfang oder Ende benötigen, müssen Sie diese nach der Umwandlung in Unicode wieder hinzufügen.