Unicode-Text
Normale 8-Bit-ASCII-Strings können nur 256 verschiedene Zeichen darstellen - für logographische oder syllabische Alphabete wie Chinesisch-Han, Japanisch-Kana oder ägyptische Hieroglyphen nicht genug. Um die Begrenzung auf 256 Zeichen zu überwinden, wurde der Unicode-Standart mit 16-Bit-Strings definiert, der 65536 verschiedene Zeichen darstellen kann. Die neueste Version von Unicode besteht aus einem Repertoire von mehr als 107.000 Zeichen, die unterschiedliche Font-Sätze benutzen und unterstützt bidirektionale Leseabfolge für das korrekte Darstellen von Schreibsystemen, die von links nach rechts gehen wie etwa Arabisch oder Hebräisch. Ab Version A7.84 unterstützt die A7-Engine sowohl TEXT-Objekte mit ASCII-Strings, als auch solche mit Unicode-TTF-Strings.
Erstellen von Unicode-Text:
- Editieren Sie den gewünschten Text in einem Editor, der Unicode unterstützt, beispielsweise Notepad® oder Microsoft Word® und verwenden Sie dabei einen Unicode-Font wie "Arial Unicode MS". Setzen Sie jeden String in eine andere Zeile.
أشهد أن لا إله إلاَّ الله و أشهد أن محمد رسول الله
Οὐκ ἔστιν θεὸς εἰ μὴ ὁ θεὸς μόνος· Μααμὲτ ἀπόστολος θεοῦ |
- Speichern Sie die Datei in einem Unicode-Textformat in den Work-Ordner. Mit Word: Save As ("Speichern Unter"), File Type: Text ("Dateityp: Nur Text"), Coding: Unicode ("Andere Codierung: Unicode"). Die Datei ist nun als Plain-Text mit 16-Bit-Zeichen gespeichert.
- Lesen Sie den 16-Bit-Text mit der Funktion txt_loadw in ein TEXT-Objekt oder mit der Funktion file_str_readtow in einen STRING ein.
- Setzen Sie den TEXT-Font auf einen Unicode-TTF-Font. Stellen Sie den TEXT mit dem Flag SHOW oder per draw_obj dar.
Bemerkungen:
- Das Text-Flag REVERSE aktiviert die Leserichtung von rechts nach links. Um Text mit einem hebräischen oder arabischen Font darzustellen, der den Text nicht automatisch umkehrt.
- The text flag REVERSE enables right-to-left reading order, for displaying text with
- A7 Einige Stringfunktionen unterstützen Unicode-Strings: str_cpy, str_len, str_cat, str_cmp, str_cmpi, und str_cmpni. In A8 unterstützen alle Stringfunktionen Unicode-Strings.
- Unicode wird nur für True-Type-Fonts unterstützt, nicht aber für Bitmapfonts. Wir glauben nicht, dass Sie eine Bitmap aus 65536 Zeichen malen wollen.
- Die Unicode-Implementierung wurde von der FH JOANNEUM Gesellschaft, Graz / Österreich gesponsort.
Beispiel:
// display a unicode text
function main()
{
TEXT* textUnicode = txt_create(10,0);
textUnicode.font = font_create("Arial Unicode MS#30");
txt_loadw(textUnicode,"Unicode.txt");
set(textUnicode,SHOW);
}
Siehe auch:
txt_loadw, file_str_readtow
► latest
version online