Du sendest einen Datenblock. Der ist x Bytes groß, in C ist ein char 1 Byte groß, Du musst also x chars senden.Glocke hat geschrieben:Wie eingangs gesagt, weiß ich nicht wie ich die einzelnen Unicode-Chars korrekt sende. Wandle ich jeden char des Strings in einen unsigned int um (um den Zahlenwert zu erhalten), bekomme ich ihn auf der Gegenseite nicht wieder zusammengesetzt, weil ich nicht weiß wie. Wie gesagt: Der cast zum char wäre ja Quatsch.
Bitte verwechsle "char" nicht mit ASCII-Buchstaben. Der Datentyp heißt char, weil mit einzelnen Bytes nunmal meistens ASCII-Zeichen gespeichert wird. Sendest Du ints, drückst Du alles unabhängig von der wirklichen Größe in ein 32-Bit breite Zeichen.
Wunderbar: UTF8. Sende sie als chars. Der String "asßdf" ist 6 Byte groß, 5 Buchstaben. Wenn Du die Zeichen nicht zu ints machst, musst Du sie auch nicht zurückformatieren.Glocke hat geschrieben:Und nein, auf beiden Seiten ist SDL-seitig Unicode aktiviert. Btw habe ich zu Testzwecken eine Variable mal direkt mit "asßdf" initialisiert. Dabei gibt es beim ß Probleme. Ich hole zeichenweise mit myString[index] die chars, caste die zum unsigned int und schicke die rüber. Für die Zeichenkette sendet er die Zahlen 97 ("a"), 115 ("s"), 4294967235, 4294967199, 100 ("d") und 102 ("f").