- Definition:
- Zeichen sind abstrakte Entitäten, die auf viele verschiedene Arten dargestellt werden können.
- Eine Zeichencodierung ist ein System, in dem jedes Zeichen in einem unterstützten Zeichensatz mit einem Wert verknüpft wird, der dieses Zeichen darstellt. Bei einer Zeichencodierung für Computer wird jedes Zeichen in einem unterstützten Zeichensatz mit einem numerischen Wert verknüpft, der das jeweilige Zeichen darstellt.
Im Computerbereich gibt es eine Vielzahl von Zeichensätzen, in denen Buchstaben „codiert“ werden. Teile dieser Codierungen sind aber untereinander inkompatibel, sodass ein Text der auf einem System mit dem voreingestellten Zeichensatz lesbar, auf einem anderen System nicht lesbar ist, weil er hier nur aus Hieroglyphen besteht.
Ist die Zeichencodierung nicht richtig angegeben, leidet nicht nur die Lesbarkeit des Textes, es kann auch bedeuten, dass die Inhalte bei einer Suche nicht gefunden oder anderweitig nicht richtig weiterverarbeitet werden können.
Die bekanntesten Vertreter dieses Problems ANSI/ASCII und UTF-8. Bei diesen werden alle „26 lateinischen Grundbuchstaben“ gleich dargestellt.
Sonderzeichen und Umlaute wie ä, ö und ü werden jedoch anderes codiert, sodass bei falscher Zeichensatz-Einstellung, im Editor oder Browser, stattdessen nur kryptische Zeichen dargestellt werden.
Die Einführung von UTF-8 war ein cleveres Konzept, für das Speichern einer Zeichenfolge von Unicode-Codepunkten. Das heißt die kleinste Speichereinheit ist 8-Bit 1-Byte. In einem Codewort 0-127 verwendet ein Byte mehr als 128 Codewörter.
Dies hat natürlich den Vorteil, dass der englische Text in UTF-8 und das ASCII-Format genau gleich gespeichert wird, so dass die Amerikaner nichts grundlegendes bemerken.
Nur der Rest der Welt, der Buchstaben mit Akzenten oder griechische Buchstaben oder Kyrillische Buchstaben verwendet, brauch mehrere Bytes, um eine einzelnen Codepunkt zu speichern.
Unterschiede zwischen Codierung und Zeichensatz
Kurz gesagt, Codierung: Code-Punkte -> Bytes , charset: Zeichen -> Bytes
- Codierung:
- Eine Zeichencodierung ist ein System, das die Darstellung aller
Zeichen eines Zeichensatzes ermöglicht.
Dies geschieht in der Regel dadurch, dass man Bytes Zeichen zuordnet.
- Zeichensatz:
- Ein Zeichensatz ist eine fest definierte Menge von Zeichen.
Ein Beispiel für einen Zeichensatz soll ISO-8859-1 sein,
auch genannt Latin-1, Lateinisch-1 oder im IE “Westeuropäisch (ISO)”.
Encoding |
Verwendung |
ä |
ö |
ü |
ß |
§ |
€ |
½ |
ASCII
= US-ASCII
= ANSI X3.4-1986
|
8-Bit-Zeichensatz, der aber nur 7 Bits
verwendet und somit nur 128 Zeichen enthält (33
Steuerzeichen und 95 druckbare Zeichen).
|
–
|
–
|
–
|
–
|
–
|
–
|
–
|
Codepage 437
= CP437
= DOS-US
= OEM-US
|
In USA im Windows-Kommandozeilenfenster (=
DOS-Box) verwendeter 8-Bit-Zeichensatz.
|
84
|
94
|
81
|
E1
|
–
|
–
|
AB
|
Codepage 850
= CP850
= DOS-Latin-1
|
In westeuropäischen Ländern im
Windows-Kommandozeilenfenster (= DOS-Box) verwendeter
8-Bit-Zeichensatz.
|
84
|
94
|
81
|
E1
|
F5
|
–
|
AB
|
ANSI
= Windows-1252
(manchmal auch
Cp1252 genannt)
|
Windows-Standardzeichensatz für
westeuropäische Länder (8 Bit).
Cp1252 enthält alle Zeichen aus ISO 8859-1 und ISO
8859-15, allerdings teilweise mit anderer
Kodierung.
|
E4
|
F6
|
FC
|
DF
|
A7
|
80
|
BD
|
ISO 8859-1
= Latin-1
|
Häufig in HTML-Seiten verwendeter
8-Bit-Zeichensatz, inkl. äöüß, aber ohne €.
Siehe auch den Vergleich 8859-1 / 8859-15 / 1252 /
Unicode.
|
E4
|
F6
|
FC
|
DF
|
A7
|
–
|
BD
|
ISO 8859-15
= Latin-9
|
Ähnlich wie ISO 8859-1, aber enthält €
und zusätzliche französiche Sonderzeichen.
|
E4
|
F6
|
FC
|
DF
|
A7
|
A4
|
–
|
UTF-8
|
Die am weitesten verbreitete Kodierung für
Unicode-Zeichen. Wird in einigen Betriebssystemen
(GNU/Linux, Unix) und teilweise in verschiedenen
Internetdiensten (E-Mail, Web) verwendet. Zeichen werden
in verschiedener Länge von 1 bis 4 Bytes kodiert.
|
C3A4
|
C3B6
|
C3BC
|
C39F
|
C2A7
|
E282AC
|
C2BD
|
UTF-16
(ohne BOM)
|
Wird in einigen Betriebssystemen (Windows, OS
X) und Programmiersprachen (Java, .NET) für die interne
Zeichendarstellung verwendet. Zeichen werden entweder in
2 oder in 4 Bytes kodiert. Siehe auch Suchseiten isthisthingon-unicode und fileformat-unicode.
|
00E4
|
00F6
|
00FC
|
00DF
|
00A7
|
20AC
|
00BD
|
UTF-16LE
(little-endian mit BOM)
|
Wenn das erste Byte der Datei OxFF und das zweite
OxFE ist. wird die Kodierung als UTF-16LE (Little
Endian) interpretiert. Diese Kodierung wird bei Win-
dows-Betriebssystemen verwendet. Der Intel x86 -Prozessor ist ein allgemeines Beispiel für ein Little-Endian-System.
Siehe auch Endianness.
|
E400
|
F600
|
FC00
|
DF00
|
A700
|
AC20
|
BD00
|
UTF-16BE
(big-endian mit BOM, manchmal auch
mit Unicode
gemeint)
|
Wenn das erste Byte der Datei OxFE und das zweite
OxFF ist. wird die Kodierung als UTF-16BE (Big Endian)
interpretiert. Diese Kodierung wird bei Macintosh-
Betriebssystemen verwendet. IBM S/360 ist ein Big-Endian -System.
|
00E4
|
00F6
|
00FC
|
00DF
|
00A7
|
20AC
|
00BD
|
EBCDIC 273
|
Hauptsächlich auf IBM-Großrechnern (AS/400,
iSeries) verwendeter 8-Bit-Zeichensatz.
|
C0
|
6A
|
D0
|
A1
|
7C
|
–
|
B8
|
HTML-Entitäten
|
"Named entities" für
nicht-ASCII-Zeichen in HTML-Sourcecode (aber nicht für
XHTML und nicht für XML).
|
ä
|
ö
|
ü
|
ß
|
§
|
€
|
½
|
Anwendung:
Type: C# Anwendung
Auf dieser Seite möchte ich Ihnen mein neues Projekt „Zeichensatz Tester“ vorstellen.
Auf die Idee gekommen bin ich aus einem Grund, dass der Scriptly wie ich schon auf der Seite FAQ – Unicode (UTF-8) beschrieben habe, in der aktuellen Version keine "echte" Unicode-Unterstützung anbietet.
Das eigentliche Ziel, zu erkennen um welche Datei es sich handelt, war schnell erledigt. Trotz alle dem
möchte ich an dieser Stelle anmerken, dass es wahrscheinlich nie ein Programm geben wird, dass erkennt, ob es sich wirklich um eine ANSI/ASCII, UTF-7, UTF-8 -Datei handelt.
Soll heißen: Eine gültige UTF-7-Datei ist zum Beispiel auch eine gültige
UTF-8-Datei.
Da es mir nicht schlicht um das erkennen der Codierung einer Datei ging, bin ich am erweitern dieses Plugin´s.
So habe ich angefangen Text aus einer Datei die in UTF-8 codiert, aber als ANSI/ASCII ausgegeben wurde, in das richtige Format UTF-8 zurück zu verwandeln. Weitere dieser Funktionen sollen folgen.
Als wichtigste Erweiterung habe ich eine automatische Update-Funktion eingebaut, die auf der Grundlage von
AutoUpdater.NET : Auto update library for VB.NET and C# Developer basiert, aber in den Grundzügen anders als das Orginal arbeitet. Lesen sie hierzu die Hilfe,
Beschreibung AutoUpdater, hier auf meiner Homepage.
Dieser Artikel muss noch geschrieben werden.
Das Programm versucht mit mehren Heuristiken zu entscheiden, ob
eine Datei in ANSI/ASCII, UTF-7 oder UTF-8 codiert ist.
Es ist praktisch allerdings nicht unmöglich, Dateien ohne Sonderzeichen
richtig zu bestimmen, weil UTF-7 gewissermaßen eine Untermenge von
7-Bit-ANSI ist und 7-Bit-ASCII eine Untermenge diverser anderer
Zeichensätze (etwa ISO-8859-* oder Windows-1252 oder sogar UTF-8) ist.
testCharset.exe [<Text file option> oder <Text file> <option>]
Sie haben die Möglichkeit, zwischen den Parameter zu wechseln.
Zwischen Text-File-Parameter, und Bearbeitungs-Parameter sollte wenigstens
ein Leerzeichen (_) oder ein Leerzeichen + Ampersand (_&) stehen.
Beispiel:
testCharset.exe c:\index.html &detect+
detect
– gibt den Zeichensatz dieser Datei zurück
(ANSI/ASCII, UTF-7, UTF-8, UTF-8 (BOM),
UTF-16 LE, UTF-16 BE, UTF-32, UTF-32 LE, UTF-32 BE)
charset
– gibt den Namen, der Codierung dieser Datei zurück
toASCII
– konvertiert die Datei in eine ASCII-Datei
toUTF-7
– konvertiert die Datei in eine UTF-7-Datei
toUTF-8
– konvertiert die Datei in eine UTF-8-Datei
toUTF-8BOM
– konvertiert die Datei in eine UTF-8(BOM)-Datei
toUTF-16LE
– konvertiert die Datei in eine UTF-16 LE-Datei
toUTF-16BE
– konvertiert die Datei in eine UTF-16 BE-Datei
toUTF-32
– konvertiert die Datei in eine UTF-32-Datei
reg
– speichert die Zeichensatz in der Registry
program
– speichert den Programm-Namen in Registry, in das das Ergebnis eingefügt werden soll
option
– Öffnet ein Dialogfenster zur freien Optionen-Auswahl und führt diese Option anschließend aus.
Mit der Esc-Taste beenden Sie das Programm und mit einem einfachen Klick auf eine
Option wird diese ausgeführt. In diesem Dialogfenster finden Sie auch die Check-Box
um nach einem Update zu suchen.
Creative-Commons-Licensing:
Dieser Inhalt ist unter der Creative-Commons-Lizenz vom Typ
Namensnennung – Nicht-kommerziell – Weitergabe
unter gleichen Bedingungen 3.0 Deutschland lizenziert.
Um eine Kopie dieser Lizenz einzusehen, besuchen Sie
http://creativecommons.org/licenses/by-nc-sa/3.0/de/
oder schreiben Sie einen Brief an Creative Commons,
444 Castro Street, Suite 900, Mountain View, California,
94041, USA.
Alte Version!
-
- Documentname copy, replace options.
- (266 KB)
- SHA-1
- MD5