UnicodeString als escaped string literal



  • Hallo zusammen,

    ausgehend von einem UnicodeString hätte ich gerne die Notation erzeugt, welche mit den unicode-werten diesen String erzeugt. Bsp.:

    UnicodeString test = u"ABC", daraus möchte ich gerne so was wie "\u0065\u0066\u0067" machen.

    Das kann doch nicht so schwierig sein, aber nach stundenlangem suchen und probieren bin ich leicht verzweifelt.

    Kann jemand helfen?

    Gruß

    Martin



  • Was hast du denn schon geschrieben?



  • Das hier funktioniert wenigstens für Zeichen mit code < 255, sollte aber natürlich auch mit Zeichen oberhalb 255 funktionieren. Ist ja auch klar dass ein Byte nur max. 255 werden kann, ich hätte erwartet, dass TByteDynArray zwei Elemente hat.

    UnicodeString utf16_string = u"ĞĦ";
    	TByteDynArray f = utf16_string.BytesOf();
    	UnicodeString erg = "";
    	for (int i = 0; i < f.Length; i++) {
    	 erg += "\\u" + IntToStr(f[i]);
    	}
    	ShowMessage(erg);
    

    Beim Versuch den Beitrag zu senden sehe ich gerade, dass selbst die Forensoftware meine Unicode Zeichen in der Weise darstellt, wie ich es machen will. Das "ĞĦ" sollten natürlich zwei unicode Zeichen sein.

    Gruß

    Martin



  • Warum verwendest du überhaupt TByteDynArray? Hol dir die Werte direkt aus dem UnicodeString.



  • Ja, so mach ich es inzwischen auch.

    Danke für die Hilfe


Anmelden zum Antworten