Etwas, das mich lange verwirrt hat, ist, dass so viel Software die Begriffe "Zeichensatz" und "Codierung" als Synonyme verwendet.
Wenn Menschen auf eine Unicode- "Codierung" verweisen, meinen sie immer einen Regelsatz zur Darstellung von Unicode-Zeichen als Folge von Bytes - wie ASCII oder UTF-8. Dies scheint vernünftig und intuitiv zu sein; Die Idee ist, dass Sie diese Zeichen unter Verwendung des angegebenen Regelsatzes als Bytes "codieren".
Da diese Regelsätze manchmal nur die Möglichkeit bieten, eine Teilmenge aller Unicode-Zeichen zu "codieren", können Sie sich vorstellen, dass ein "Zeichensatz" - kurz für "Zeichensatz" - einfach einen Satz von Unicode-Zeichen bedeutet - ohne Rücksicht darauf, wie Diese Zeichen sind codiert. Eine Codierung würde somit einen Zeichensatz implizieren (eine Codierung wie ASCII, die nur Regeln zum Codieren von 128 Zeichen enthält, würde dem Zeichensatz dieser 128 Zeichen zugeordnet sein), aber ein Zeichensatz muss keine Codierung implizieren (zum Beispiel UTF-8, UTF -16 und UTF-32 sind alle unterschiedliche Codierungen, können jedoch denselben Zeichensatz codieren.
Doch - und hier ist der Kern meiner Frage - die reale Verwendung des Wortes "Zeichensatz" entspricht nicht dem, was die Konstruktion des Wortes implizieren würde. Es wird fast immer verwendet, um "Codierung" zu bedeuten.
Zum Beispiel:
- Das
charset
Attribut in HTML wird verwendet, um eine Codierung anzugeben Charset
s in Java sind Codierungencharset
s undcharacter sets
in MySQL sind wieder Codierungen
Wie alt ist dieser merkwürdige (ab) Sprachgebrauch und wie kam es zu dieser kontraintuitiven Definition von "Zeichensatz"? Ist es vielleicht aus einer Zeit stammen , als es wirklich war , in der Praxis eine Eins-zu-Eins - Abbildung zwischen Codierungen im Einsatz und Zeichensätze unterstützt sie? Oder gab es einen besonders einflussreichen Standard oder eine Spezifikation, die diese Definition des Wortes diktierten?
charset
älter als der Unicode-Standard. Obwohl es sich möglicherweise nicht um eine "Eins-zu-Eins-Zuordnung" handelt, erzwingen die für ein Dokument erforderlichen Zeichen tendenziell die Wahl der Codierung. Aber ich habe keine Zeit, die tatsächliche Geschichte des Wortes zu erforschen ...