Wenn ich versuche, eine Textdatei mit nicht englischem Text im Editor zu speichern , kann ich zwischen Unicode , Unicode Big Endian und UTF-8 wählen . Was ist der Unterschied zwischen diesen Formaten?
Unter der Annahme , ich nicht jede Abwärtskompatibilität will (mit älteren OS - Versionen oder Apps) und ich nicht kümmere sich um die Dateigröße, die diese Formate sind besser?
(Angenommen, der Text kann neben anderen Sprachen auch in Sprachen wie Chinesisch oder Japanisch verfasst sein.)
Hinweis: Aus den nachstehenden Antworten und Kommentaren geht hervor, dass Unicode in Notepad-Jargon UTF-16 (Little Endian), Unicode-Big-Endian UTF-16 (Big Endian) und UTF-8 UTF-8 ist.
Antworten:
Keine Ahnung. Was ist besser: eine Säge oder ein Hammer? :-)
Unicode ist nicht UTF
In dem Artikel gibt es ein Stück, das für das jeweilige Thema etwas relevanter ist:
UTF-32 konzentriert sich auf Vollständigkeit und Darstellung mit fester Länge, wobei 4 Bytes für alle Zeichen verwendet werden. Es ist die einfachste Übersetzung und ordnet den Unicode-Codepunkt direkt 4 Bytes zu. Offensichtlich ist es nicht sehr größeneffizient.
UTF-16 ist ein Kompromiss, bei dem die meiste Zeit 2 Bytes verwendet werden, der jedoch auf 2 * 2 Bytes pro Zeichen erweitert wird, um bestimmte Zeichen darzustellen, die nicht in der mehrsprachigen Grundebene (Basic Multilingual Plane, BMP) enthalten sind.
Siehe auch Das absolute Minimum, das jeder Softwareentwickler unbedingt über Unicode und Zeichensätze wissen muss (keine Ausreden!)
quelle
Für europäische Sprachen ist UTF-8 kleiner. Bei orientalischen Sprachen ist der Unterschied nicht so deutlich.
Beide verarbeiten alle möglichen Unicode-Zeichen, sodass die Kompatibilität keine Rolle spielt.
quelle
Es gibt mehr Unicode-Zeichencodierungen als Sie vielleicht denken.
UTF 8
Die UTF-8-Codierung ist variabel und reicht von 1 bis 4 Byte, wobei die oberen Bits jedes Bytes als Steuerbits reserviert sind. Die führenden Bits des ersten Bytes geben die Gesamtzahl der für dieses Zeichen verwendeten Bytes an. Der Skalarwert des Codepunkts eines Zeichens ist die Verkettung der Nicht-Steuerbits. In dieser Tabelle
x
stehen die niedrigsten 8 Bits des Unicode-Werts,y
die nächsthöheren 8 Bits undz
die darüber liegenden Bits.quelle
"Unicode" ist ein weiterer Begriff für "UTF-16", bei dem es sich um eine Codierung des Unicode-Zeichensatzes in 16 Bit pro Zeichen handelt. UTF-8 codiert es in acht Bits pro Zeichen.
In beiden Fällen wird jeder Überlauf weiteren 16 oder acht Bits zugewiesen.
quelle
Der einzige wirkliche Vorteil bei kleinen Dateien wie Textdateien ist die resultierende Dateigröße. UTF-8 erzeugt im Allgemeinen kleinere Dateien. Bei chinesischem / japanischem Text ist dieser Unterschied möglicherweise weniger ausgeprägt.
quelle
In einem Wort ist Unicode ein Zeichensatz , während Unicode Big Endian und utf-8 zwei Kodierungen sind, die zum Speichern von Zeichen als 01 auf einem Computer verwendet werden.
quelle