QT 4.5 UTF-16 nach UTF 8 convertieren ...



  • Hallo Zusammen,

    gibt es eigentlich eine Möglichkeit einen Zeichensatz von
    UTF-16 nach UTF-8 (eigentlich 8bit Char) zu konvertieren und
    wieder zurück ?

    Z.b. Eine Chinesichen Zeichen in 8Bit wandeln und wieder zurück.

    Hintergrund ist, das ich mit einem Gerät spreche, welches nur 8-Bit kann
    will aber meine Anwendung auch auf UTF16 schreiben um für die Zukunft
    gewappnet zu sein.

    Gruss



  • gibt es eigentlich eine Möglichkeit von UTF-16 nach UTF-8 (eigentlich 8bit Char) zu konvertieren

    QString::utf8().

    das ich mit einem Gerät spreche, welches nur 8-Bit kann

    Bist Du sicher, dass Du mit "8-Bit" wirklich UTF-8 meinst und nicht Ascii oder sowas ?



  • Hi hellihjb.

    Du hast recht, ich meine nicht UTF-8 sondern ASCII, jedoch den vollen Zeichensatz für eine binäre Übertragung.

    Ich tue mich derzeit etwas schwer mit QString und Ascii. Hier gibt es ja eine Menge Convertierungsroutinen nach 8bit (QString => Utf-16).

    Ich rede von QT4.5 übrigens, da die Namen der Wandlungen bei anderen (älteren Version teilweise anderes geschrieben wird).

    ->toAscii()
    ->toUtf8()
    ->toLocal8Bit()
    ->toLatin()

    Wenn ich aber zum Beispiel einen asiatischen Zeichensatz haette, würde dann die Routine fromAscii() den Zeichensatz wieder korrekt in das vorherige Zeichen konvertieren ?

    Gruss



  • Wie willst Du denn ein asiatisches Schriftzeichen in Ascii repraesentieren?



  • Eigentlich habe ich nur das Problem,
    das ich diese Information auf einem 8Bit Speicher (SPS) zwischenspeichere.

    Dort wird er nicht dargestellt.
    Wenn ich dieses Zeichen aber wieder zurück lese, muss das Originalzeichen
    wieder dargestellt werden.

    Eigentlich müsste ich doch nur die fehlenden 8 Bit einfügen.

    Nur weiss ich nicht, ob die oberen 8 Bit nur für den Zeichensatz verwendet
    werden oder ob dort auch Informationen abgelegt werden.
    Wenn das der Fall ist, geht es nicht.

    Gruss



  • Ritchie schrieb:

    Nur weiss ich nicht, ob die oberen 8 Bit nur für den Zeichensatz verwendet werden oder ob dort auch Informationen abgelegt werden. Wenn das der Fall ist, geht es nicht.

    Wieso nicht? Kannst du ein Zeichen nicht auf mehrere Bytes aufteilen?



  • Eigentlich nicht,

    da die Software normalerweise für 8bit ASC auf der Steuerungsseite geschrieben
    ist.

    Hier ist der entsprechende Speicher nicht vorhanden.

    Das würde nur mit Änderung der Software gehen.

    Gruss


Anmelden zum Antworten