Hallo pl,
Wenn ich meinen Quellcode in ISO-8859-1 speichere
Logisch, dann kriegst Du eine andere Bytesequenz!
Ich zitiere dich aus dem Posting direkt davor:
Wenn Du bei der Bytesemantic bleibst, spielt die Zeichenkodierung überhaupt keine Rolle.
Diese Aussage ist offensichtlich falsch.
char e = "€"; // Quelldatei UTF-8 kodiertwas schon der Kompiler nicht durchgehen lässt. Siehe Artikel
Ja, aber die Begründung ist falsch. char c = "a" wird auch vom Compiler bemängelt. Der Grund ist nicht, dass "€" bei UTF-8-Kodierung mehrere Bytes benötigt, sondern dass Doublequotes einen Pointer auf einen C-String erzeugen. Was du meinst ist char e = '€' - hier ist deine Begründung richtig.
Und nochwas: uint8_t *binary - don't do that. C gibt dir nur diese eine Garantie: signed char ≤ short int ≤ int ≤ long int ≤ long long int. Es ist nicht garantiert, dass uint8_t == unsigned char. Praktisch ist es heutzutage überall der Fall, aber es muss nicht so sein. Die Datentypen existieren aus einem Grund. Wenn du char meinst, benutze auch char.
LG,
CK
 nicht angemeldet
 nicht angemeldet Matthias Apsel
 Matthias Apsel Auge
 Auge Rolf B
 Rolf B