UTF8 Kodierung 1 oder mehr bytes

Gast #6938278
Lesenswert?
• ▲
▼
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?
Angehängte Dateien:
Persönliche Seite #6938307
Lesenswert?
• ▲
▼
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.
Gast #6938316
Lesenswert?
• ▲
▼
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.
Gast #6938375
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.