Texte aus UNICODE-Textdatei auslesen



  • Hallo!

    Ich habe ein mehrsprachiges Programm mit dem Borland Builder geschrieben. Die verschiedenen Sprachen werden in einer ANSI-Text-Datei abgelegt und beim Start geladen und dargestellt.
    Das funktioniert auch sehr gut.

    Jetzt habe ich eine Text-Datei im UNICODE-Format in der russische Texte enthalten sind bekommen.

    Jetzt die Frage: Wie kann ich die UNICODE-Text-Datei richtig einlesen.

    Derzeit lese ich Textdateien mit "fopen" und "fgets".
    Das funktioniert aber mit UNICODE-Textdateien nicht.

    Kann mir jemand weiterhelfen?



  • mathab,

    mathab schrieb:

    Derzeit lese ich Textdateien mit "fopen" und "fgets".
    Das funktioniert aber mit UNICODE-Textdateien nicht.

    zwei Dinge fallen mir dazu ein:

    1. Unicode(UTF-16)-Dateien beginnen mit einer bestimmten Folge von Bytes, damit zu erkennen ist, ob überhaupt Unicode vorliegt - hier eine kleine Tabelle:
    Byte-order mark  Description
    EF BB BF         UTF-8
    FE FF            UTF-16/UCS-2, little endian
    FF FE            UTF-16/UCS-2, big endian
    FF FE 00 00      UTF-32/UCS-4, little endian.
    00 00 FE FF      UTF-32/UCS-4, big-endian
    

    Die Quelle habe ich leider nicht mehr. Auf unicode.org oder im MS SDK sollte das aber zu finden sein. Schnapp' Dir einfach einen Hex-Editor und schau Dir die ersten beiden Bytes an.
    2) Ein Unicode-Zeichen besteht aus 2 Bytes. fgetc und fgets müssen/sollten also durch die 2-Byte-Varianten fgetwc und fgetws ersetzt werden.

    Anschließend stellt sich noch die Frage, was Du mit den WideStrings anzufangen gedenkst. Die Komponenten, die Deine Texte darstellen sollen, müssen auch Unicode verstehen ...



  • Danke jetzt bin ich einen Schritt weiter.
    Jetzt stellt sich natürlich die Frage, ob ich z.B. bei einem Menüpunkt einen "UNICODE-String" zuweisen kann, damit hier ein russischer Text korrekt dargestellt wird?


Anmelden zum Antworten