ä,ö,ü aus negativen werten in AnsiString casten



  • Moin

    Wenn man in einem char ein ä speichert, dann ist sein wert -127.
    Wenn ich nun 256 hinzu addiere bekomme ich den richtigen ascii wert (132).
    Wie kann ich den nun in einen AnsiString hineinschreiben.
    Mit AnsiString[i] geht das auch nicht, weil das wieder chars sind(-128 ... 127).

    Das sieht genau so aus:

    char TheChar=-124;
            //Das darf nicht geändert werden
    
            int TheRealChar=TheChar+256;
            AnsiString Result;
            Result+=(char)TheRealChar;
            ShowMessage(Result);
    

    Der code gibt mir nicht ein ä sondern ein doppel komme.
    Ich weiss auch wieso (weil chars nur -128 ... 127 gehen)
    Ich weiss einfach nicht wie ich das umgehen kann.
    Result söllte = "ä" sein.

    Hat jemand eine Idee?



  • N-Dream schrieb:

    Wenn man in einem char ein ä speichert, dann ist sein wert -127.

    Nö, ist -28. Und wenn du damit weiterrechnest klappt es auch mit dem Nachbarn. 😉



  • ja das weiss ich auch. aber meine pipe übergibt mir ein ä nicgt als -28!



  • Probiers doch mal mit unsigned char


Anmelden zum Antworten