2014-01-23 3 views
17

Liest Joel Spolsky 'Das absolute Minimum' über die Zeichencodierung. Es ist mein Verständnis, dass ASCII ein Code-Point + Encoding-Schema ist, und in modernen Zeiten verwenden wir Unicode als das Codepoint-Schema und UTF-8 als Encoding-Schema. Ist das richtig?ASCII vs Unicode + UTF-8

Antwort

16

Ja, außer dass UTF-8 ein Kodierungsschema ist. Andere Codierungsschemata umfassen UTF-16 (mit zwei verschiedenen Byte-Ordnungen) und UTF-32. (Für einige Verwirrung, ein UTF-16-Schema wird "Unicode" in Microsoft-Software genannt.)

Und, um genau zu sein, der American National Standard, definiert ASCII definiert eine Sammlung von Zeichen und ihre Codierung als 7-Bit-Mengen , ohne eine bestimmte Transfercodierung in Bytes anzugeben. In der Vergangenheit wurde es auf verschiedene Arten verwendet, z. so dass fünf ASCII-Zeichen in eine 36-Bit-Speichereinheit gepackt wurden oder dass 8-Bit-Bytes die zusätzlichen Bytes für Prüfzwecke (Paritätsbit) oder für die Übertragungssteuerung verwendeten. Aber heutzutage wird ASCII verwendet, so dass ein ASCII-Zeichen als ein 8-Bit-Byte codiert wird, wobei das erste Bit auf Null gesetzt wird. Dies ist das de facto Standardcodierungsschema und ist in einer großen Anzahl von Spezifikationen impliziert, aber streng genommen nicht Teil des ASCII-Standards.

+3

Also ASCII das gleiche wie UTF-7? – aaiezza

19

In modernen Zeiten ist ASCII jetzt eine Untermenge von UTF-8, nicht ein eigenes Schema. UTF-8 ist abwärtskompatibel zu ASCII.

+1

Ok. Vor UTF-8 war ASCII ein kombiniertes Codepunkt + Codiersystem? Ich frage nur, weil ich gerne erfahren würde, wie sich das ASCII-System entwickelt hat. –

+1

ASCII definiert Codepunkt-Werte (sie wurden nicht Codepoints genannt, bis Unicode kam) 0-127, aber es definiert ihre Codierungen nicht. Alle Sprachcodierungen verwenden die gleichen Werte wie ASCII für ihre ersten 128 Zeichen. UTF-8, ISO-Kodierungen, lateinische Kodierungen usw. sind alle 8-Bit-Kodierungen, die ASCII-Werte unterstützen. UTF-16 und UTF-32 sind 16/32-Bit-Kodierungen, die auch ASCII-Werte unterstützen. Codepunktwerte und ihre codierten Codeunit-Werte innerhalb einer gegebenen Codierung sind zwei getrennte Dinge. –

+0

Sortieren von. ASCII definiert technisch nur die ersten 7 Bits. Aber die meisten ASCII + Codepage-Schemata haben zusätzliche 128 Zeichen, wie Windows (1252) oder Mac OS Roman (10000). Diese werden alle als "ASCII" bezeichnet, aber UTF-8 passt nicht zu ihnen, wenn Sie über 127 gehen. – PRMan

Verwandte Themen