Hallo ich steh irgendwie auf dem Schlauch was die UTF8 Codierung anbelangt. Es geht um angehängtes File. Laut Editor ist jede Zeile genau ein Zeichen lang. Es werden aber nicht nur ASCII Zeichen sondern mitunter auch chinesische Zeichen angezeigt. Warum merkt ein Editor, dass die Zeichen ab Zeile 95 2 bytes lang sind und ab Zeile 437 3 bytes? Warum werden nicht stattdessen 2 bzw. 3 entsprechende Zeichen aus dem ASCII Spektrum angezeigt?
Dein Editor hat eine Heuristik, welche errät dass die Datei als UTF-8 kodiert sein könnte, und erkennt dann bestimmte Bytefolgen eben als ihre jeweiligen Unicode-Zeichen wie eben die chinesischen Zeichen. Wenn es kein UTF-8 ist, kannst du in deinem Editor wahrscheinlich einstellen, welche Kodierung er annehmen soll. Bei Notepad++ kannst du z.B. im Menü "Encoding->Character Sets->Western European->ISO 8859-15" auswählen, dann wird eben diese Kodierung angenommen, und du siehst die entsprechenden Zeichen (keine chinesischen Zeichen mehr), und halt eine Menge Nicht-Druckbares. So eine Datei im Hex-Editor anzusehen ist immer recht lehrreich. Was für eine Kodierung soll die Datei denn haben? Einfach nur ASCII ist es offensichtlich nicht, weil eben Bytes mit Wert > 127 vorhanden sind, die der Editor eben als UTF-8-Multibyte-Sequenzen erkennt.
:
Bearbeitet durch User
Klaus schrieb: > Warum werden nicht stattdessen 2 bzw. 3 entsprechende Zeichen aus dem > ASCII Spektrum angezeigt? ASCII ist ein 7-Bit-Zeichensatz. Sobald 8-Bit-Zeichen (also Bit 7=1) dabei sind, muss er raten, sofern Du ihm den verwendeten Zeichensatz nicht explizit mitteilst.
Schau dir https://de.m.wikipedia.org/wiki/Byte_Order_Mark Mal an. Wenn sie ein Zeichen am Anfang steht, ist es für den Editor ein relativ eindeutiges Zeichen. Falls nicht kann er raten. Z.b. indem er schaut, welche Kodierung plausiblen Text produziert. Nur ASCII: egal ob ASCII oder utf8. Wenn >127: passt alles als utf8? Wenn viele 0 Bytes: utf16/32? Wenn nur einzelne Zeichen > 127: Codepage raten
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.