Mögliches Unicode-Problem?



  • Hallo!

    Ich bin etwas verzweifelt und hoffe hier Hilfe zu finden.
    Ich basel an einer Languag-Datei für eine PocketPC-Anwendung und stosse auf das KOnvertierungsproblem
    zwischen Unicode und ANSI. Auf dem PocketPC wird Unicode verwendet und die Datei sieht so aus:

    Original = Übersetzung (newline)
    Original = Übersetzung (newline)
    Original = Übersetzung (newline)

    Während des Programmlaufs werden mittels GetWindowText die Labels gelesen und in eine Datei geschrieben:
    Original = (newline)

    Erst wenn eine Übersetzung nach dem = eingetragen wurde, wird der Originaltext mit der Übersetzung ersetzt, sonst wird einfach der Originaltext verwendet.

    Wenn die Datei gespeichert wird, sieht das Ganze auf dem PocketPC nicht normal aus, etwa so

    O r i g i n a l = (komisches Symbol) O r i g i n a l = (komisches Symbol)

    Es wird kein Newline eingeschrieben, auch wenn ich es explizit mit \n, \r oder \r\n angebe.

    Was kann das sein?

    Natürlich möchte ich dann am PC die Übersetzung reinschreiben und da sieht das Ganze dann korrekt aus.

    Ist es ein Unicode/ANSI und umgekehrt Problem?

    Was kann ich tun?

    Danke!!!!!

    PS: Die Suche konnte mir nicht so recht helfen.



  • wenn der string mit einen leerzeichen dazwischen ist liegt das daran das die zeichen in unicode gespeichert wurden, das dokument aber als multibyte geoeffnet wurde

    es ist ja so das das dokument bei unicode O.R.I.G.I.N.A.L beinhaltet - pro zeichen immer zwei plaetze
    vermutlich wird das dokument einfach falsch geoeffnet - ich glaub da fehlt dann zu beginn der datei das "flag" im welchen format die datei gespeichert wurde - das "komische zeichen" ist dann meistens nur das \n - \r\n selber ist korrektes unicode newline



  • Danke!

    Naja...aber wie soll ich das Flag setzen? Ich erzeuge die Datei selbst wenn die nicht schon existiert....irgendwie komm ich da einfach nicht weiter.



  • das liegt nur an der erzeugung - vermutlich erzeugst du eine multibyte datei welche mit unicode beschrieben wird

    //dazuedit
    probier mal die datei in einem bestimmten format zu oeffnen - UltraEdit zb bietet es an im oeffnen dialog das format mit an zu geben wie es gelesen werden soll



  • Hi,

    btw. das "Flag" in der Datei, welches die Datei als Unicode bezeichnet nennt sich Byte Order Mark (BOM). Bei Unicode Dateien ist das "FF FE" oder anders herum. Genauer steht es hier:

    http://unicode.org/faq/utf_bom.html#38


Anmelden zum Antworten