Hallo Mike,
zunächst: Was verstehst du unter ANSI? [...]
Meine Editor zeigen Ansi an.
ja, das mag sein. Allerdings wird das gern als Sammelbegriff für verschiedene (ähnliche) Codierungen verwendet. Der Artikel, den du verlinkst, erklärt immerhin, dass dort konkret ISO-8859-1 gemeint ist; der Windows-Editor gibt auch "ANSI" an, meint damit aber Windows-1252. Das ist zwar sehr ähnlich zur ISO-8859-Familie, aber manchmal kommt es gerade auf die feinen Unterschiede an, und deshalb möchten wir so ungenaue Wischiwaschi-Begriffe wie "ANSI" hier vermeiden.
Ja klar, siehe oben. An ein paar Ziffern kannst du keine Zeichencodierung ablesen.
Genau so ist es. Sobald Buchstaben drin vorkommen ist es UTF-8, war mir aber nicht bewusst.
Buchstaben im engeren Sinn, also [A-Za-z] reichen noch nicht, wie dedlfix schon erwähnte. Ein Unterschied ist erst feststellbar, wenn Zeichen verwendet werden, die in ASCII nicht vorkommen. Zum Beispiel ü oder é.
Das mit den Zeichenkodierungen ist tatsächlich etwas verwirrend
Ist es teilweise, zugegeben.
weil ich nicht weiß wie und wo die Zeichenkodierung innerhalb einer Datei deklariert wird.
Es gibt da (leider) keine allgemeine Festlegung. Manche Dokumentformate sehen eine Angabe *im Dokument* vor, etwa HTML. Andere kümmern sich gar nicht speziell drum.
Wichtig ist immer:
(A) Beim Erstellen der Datei muss man sich für *eine* Codierung entscheiden und den Text dann tatsächlich in der Codierung speichern. Viele Programme nehmen einem diese Entscheidung ab, weil sie gar keine Auswahl anbieten. Deshalb ist auch vielen Nutzern dieser Schritt nicht bewusst.
(B) Falls das Datei- oder Dokumentformat oder das Übertragungsprotokoll es irgendwo vorsieht, sollte man die Codierung dort angeben - und zwar die, die man tatsächlich verwendet hat, und nicht die, die man gern hätte. Ein häufiges Problem ist etwa, dass Web-Entwickler ihre Dokumente in UTF-8 speichern und auf den Server hochladen, der Server dann aber so konfiguriert ist, dass er ISO-8859-1 angibt (und der Entwickler nicht daran gedacht hat). Die Folge ist, dass sämtliche Nicht-ASCII-Zeichen "kaputt" dargestellt werden.
Ein anderes häufiges Problem ist, dass Laien einfach "UTF-8" hinschreiben und dann meinen, die Datei sei dadurch automatisch umcodiert. Nein! Nur dadurch, dass ich auf eine Sprudelflasche ein Aquavit-Etikett draufklebe, ist noch kein Schnaps drin.
(C) Beim Austausch von Dat(ei)en zwischen verschiedenen Systemen oder Programmen müssen entweder alle beteiligten Komponenten dieselbe Codierung verwenden, oder man muss sie überall explizit angeben, so dass die eine oder andere Komponente die Daten korrekt umschlüsseln kann. Aber Vorsicht: Viele Codierungen lassen sich nicht verlustfrei in andere konvertieren, weil die Ziel-Codierung nicht alle verwendeten Zeichen darstellen kann. Wer beispielsweise hebräische Zeichen in UTF-8 verwendet, wird diese Zeichen verlieren, wenn er nach ISO-8859-x umcodiert, weil diese Zeichen da nicht vorkommen.
Dachte auch wenn nur Zahlen drin wären wäre die Datei unsichtbar mit UTF-8 deklariert, so wie zb. Windows interne Angaben bei BOM reinbaut.
Den Satz begreife ich nicht ganz. Das mit den Zahlen hatten wir ja schon geklärt; die BOM (Byte Order Mark) ist ein spezielles Unicode-Zeichen, das am Anfang von UTF-8-Dokumenten stehen kann (aber nicht muss) und eine eindeutige Erkennung der Codierung erlaubt. Die BOM ist aber optional und führt gelegentlich zu Problemen (z.B. bei PHP-Scripten), so dass allgemein empfohlen wird, diese BOM wegzulassen. Eine darüber hinausgehende Magie hat die BOM aber nicht.
So long,
Martin
--
F: Was ist wichtiger: Die Sonne oder der Mond?
A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(