Darstellung von chinesischen Schriftzeichen



  • Hallo,

    in meiner Software ist es möglich alle Texte auch in chinesischen Schriftzeichen darzustellen. Hierzu habe ich diese Zeichen in einer String table abgespeichert. Um die chinesischen Zeichen allerdings anzeigen zu können, muss auf dem Rechner erstens der chinesische Zeichensatz verfügbar sein, und zweitens muss dieser auch über die Systemeinstllung ausgewählt werden.

    Gibt es denn eine Möglichkeit den Zeichensatz in mein Programm einzubinden, so dass er nicht in den Systemeinstellungen manuell ausgewählt werden muss?



  • neind as geht nicht, das ist system und font abhaengig



  • Okay, wenn du dir da ganz sicher bist.
    Und gibt es eine möglichkeit die chinesischen Zeichen anzuzeigen, wenn der Zeichensatz zwar verfügbar ist, allerdings aktuell nicht ausgewählt wurde?



  • Klar geht das.

    Unter NT/2000/XP ist das ganz einfach: Arial Unicode verwenden (CFont oder wie auch immer) und einfach schreiben (TextOut).

    Unter 95/98/ME musst du evtl. die Uniscribe DLL verwenden (ist beim IE dabei, bzw. bei 98/ME wahrscheinlich schon beim System).

    Wenns von Windows unabhängig sein soll gibts immer noch die Möglichkeit Libraries wie FreeType2 zu verwenden.


  • Mod

    Wenn das ein Unicode Programm ist, dann geht das ohne Probleme. Die String in den Ressourcen werden ja sowieso als Unicode Strings gespeichert, und das ist unabhängig vom OS. Spannender ist da schon was der Ressourcen Edit da macht..



  • Geht auch in einem ANSI/MBCS Programm. In dem Fall muss man halt TextOutW verwenden, und ggf. noch einige andere Kleinigkeiten anpassen.



  • Und kann es Probleme geben wenn die anzuzeigenden Strings in einer externen .txt-Datei abgespeichert sind?



  • Klar kann das Probleme geben, denn UNICODE aus einer Datei zu laden ist nicht ganz SO einfach. Es gibt ja UTF8, UTF16 (LE), UTF16 (BE) und noch hunderte Codepages die verwendet werden können um "String in eine Datei zu speichern".
    Um die Strings zu laden musst du wissen was verwendet wird, und das richtig "decodieren".



  • Wie kann ich denn herausfinden, welcher Unicode verwendet wird. Ich habe die Strings ja selber in der .txt-datei abgelegt. Hierzu habe ich den Editor verwendet. Vielleicht klärt das ja schon alles?!

    Okay habs gefunden, man kann beim speichern die codierung ja auswählen! Hab das Dokument nun als Unicode abgespeichert.



  • FYI: Bei Microsoft ist UTF-16 als Unicode standard



  • Wenn du die Datei selbst schreibst und daher den Inhalt kontrollieren kannst ist ja alles kein Problem 🙂


Anmelden zum Antworten