utf8
-
Hi,
wie kann ich in C++ pruefen ob ein string utf8 ist?
-
Definitiv feststellen lässt sich das nicht. Aber schau Dir mal die bunte Tabelle auf http://de.wikipedia.org/wiki/UTF-8 an. Wenn in Deinem String nur die grünen, braunen und blauen Bytes vorkommen ist die Wahrscheinlichkeit recht hoch, dass es sich um UTF-8 handelt. Zusätzlich kannst Du noch prüfen, ob immer genau die richtige Anzahl Folgebytes auf ein Startbyte folgen.
-
ok,
http://www.w3.org/International/questions/qa-forms-utf-8warum prueft man hier ob das byte innerhalb von folgenden bereich liegt fuer ASCII?
if((byte[0] == 0x09 || byte[0] == 0x0A || byte[0] == 0x0D || byte[0] == 0x20) && 0xx7E)warum kann ich hier nicht zwischen 0 und 127 pruefen? if((byte[0] >= 0x00 && byte[0] <= 0xx7E) ??
das encoding ist ja:
U+0000-U+007F 0xxxxxxx ... ASCIIohne auf die folge bytes nun ein zu gehen...
-
Coder1 schrieb:
if((byte[0] == 0x09 || byte[0] == 0x0A || byte[0] == 0x0D || byte[0] == 0x20) && 0xx7E)
ist was anderes als
[\x09\x0A\x0D\x20-\x7E] # ASCIIBei ASCII liegen im Bereich 0 bis 0x1F nicht-druckbare Sonderzeichen, die in Formulardaten wohl eh nie vorkommen. Mit Ausnahme von Tabulator und Zeilenumbruch.