UnicodeString->AnsiString bzw. UnicodeString-> *char



  • Hallo,

    benötige mal die Hilfe von kompetenten Programmierer.
    Ich habe hier einen UncodeString. Muss die Zeichen ein gewöhnlichen char-Array kopieren.
    Es muss ein char-Array sein. Aus dem UnicodeString kann ich aber ja nur wchar_t (Zeichen) Elemente gewinnen (Zeiger). Wie kann ich diese WideCharakter als gewöhliche Charakter in meinem char-Array kopieren.
    Bitte um Hilfe und um Nachsicht. Bin erst noch am lernen.



  • Zuerst nach AnsiString konvertieren.



  • Wie gesgt, bitte ich um Nachsicht. Ich bin neu und noch am lernen.
    Wie convertiere isch denn einen UncodeString in einen AnsiSting?

    Durch Ainsitring(blabla);??????



  • Hallo

    Durch den Konstruktor von AnsiString

    WideString source;
      AnsiString dest(source);
    

    Wundere dich aber nicht, wenn dabei in dest dabei seltsame Zeichen stehen. Diese Umwandlung funktioniert natürlich nur korrekt für Zeichen, die in der gerade aktiven ASCII-Codepage vorhanden sind.

    Um Unicode verlustfrei (d.h. vollständig wieder in Unicode zurückwandelbar) in ASCII zu konvertierten must du Kodierungsverfahren wie UTF8 einsetzen, die allerdings nicht direkt mit WideString mitgeliefert werden. Im Indy-Package sollte aber eine entsprechende Routine sein.

    bis bald
    akari



  • C++Builder 2009 verfügt über einen Typen namens UTF8String, der die Konversion implizit durchführen kann.
    Überhaupt ist es möglich, Typen beliebiger Codepages zu deklarieren mittels

    typedef AnsiStringT <CodePage> TheStringType;
    

    AnsiString und UTF8String sind beispielsweise wie folgt deklariert:

    typedef AnsiStringT <0> AnsiString;
    typedef AnsiStringT <65501> UTF8String;
    

Log in to reply