2008-09-26 7 views
3

Ich habe die Java-Dokumentation angeschaut und das Netz nach Informationen über die Unterstützung von Java für internationale Zeichen mit bestimmten Fonts (wie Monospace) durchforstet, konnte aber keine klare konkrete Antwort bekommen.Java, Unicode und Fonts

Es gab einen Wechsel zwischen Java 1.4 und Java 1.5/1.6. Zum Beispiel, in Java 1.4, wenn Sie die Schriftart auf einem JTextArea auf Monospace setzen, wird es nicht in der Lage sein, fremde Zeichen zu behandeln (stattdessen Rechtecke), aber in Java 1.5/1.6 scheint es gut zu funktionieren.

Sind diese Unterschiede/verbesserte Unterstützung überall eindeutig dokumentiert?

Dank

Antwort

2

Von Internationalization Enhancements:

Multilingual Text Rendering

mehrsprachigen Text zu machen, unter Verwendung von logischen Schriftart, 2D nutzt nun installierten Host-OS-Schriften für alle unterstützten Schreibsysteme. Wenn Sie beispielsweise in einer thailändischen Gebietsschemaumgebung ausgeführt werden, aber koreanische Schriftarten installiert haben, werden sowohl Thai als auch Koreanisch gerendert. Die JRE erkennt nun auch automatisch physische Schriften, die in ihrem Verzeichnis lib/fonts/fallback installiert sind, und fügt diese physischen Schriften allen logischen Schriften für das 2D-Rendering hinzu.

Verwendung von Unicode-APIs unter Windows

AWT verwendet jetzt den Unicode-APIs unter Windows 2000/XP. Daher können einige seiner Komponenten Text verarbeiten, ohne durch Windows-Gebietsschemaeinstellungen eingeschränkt zu sein. Zum Beispiel können AWT-Textkomponenten Text im Devanagari-Schreibsystem akzeptieren und anzeigen, unabhängig von den Windows-Gebietsschemaeinstellungen. (Hervorhebung von mir)

0

Wie "fremd" sind diese Zeichen? Die meisten lateinischen Schriftarten können mindestens die Buchstaben mit Akzent und andere Zeichen in der oberen Hälfte von ISO-8859-1 verarbeiten, aber ich denke nicht, dass Sie auf etwas anderes zählen können.

Ihre beste Wette besteht normalerweise darin, den Benutzer aus einer Liste unterstützter Schriftarten auswählen zu lassen, die Sie aus dem zugrunde liegenden Betriebssystem abrufen. Wenn Sie das nicht tun können oder wollen, können Sie den CSS-Ansatz verwenden: Iterieren Sie eine Liste zulässiger Schriftarten und verwenden Sie die erste, die Sie installiert haben.

Um die Liste zu füllen, einfach Google für "Programmierer Schriftarten" oder "monospaced Schriftarten". Ich mochte nie irgendwelche logischen Schriften von Java, besonders Monospace, das entweder Courier oder Courier New in einer Windows-Box ist. Ich habe es vor Jahren aufgegeben.