Unicode
es un Standard die eine eindeutige Nummer für jedes Zeichen liefert. Diese eindeutigen Nummern werden als code point
s (was nur ein eindeutiger Code ist) für alle in der Welt existierenden Zeichen (einige müssen noch hinzugefügt werden).
Für verschiedene Zwecke kann es erforderlich sein, dass Sie dies darstellen code points
in Bytes (die meisten Programmiersprachen tun dies), und hier ist es Character Encoding
tritt ein.
UTF-8
, UTF-16
, UTF-32
und so weiter sind alle Character Encodings
und die Codepunkte von Unicode werden in diesen Kodierungen auf unterschiedliche Weise dargestellt.
UTF-8
Kodierung hat eine variable Länge, und die darin kodierten Zeichen können 1 bis einschließlich 4 Byte belegen;
UTF-16
hat eine variable Länge, und die darin kodierten Zeichen können entweder 1 oder 2 Byte (d. h. 8 oder 16 Bit) umfassen. Dies stellt nur einen Teil aller Unicode-Zeichen dar, die BMP (Basic Multilingual Plane) genannt werden, und ist für fast alle Fälle ausreichend. Java verwendet UTF-16
Kodierung für seine Zeichenketten und Zeichen;
UTF-32
hat eine feste Länge und jedes Zeichen benötigt genau 4 Bytes (32 Bit).
1 Stimmen
de.wikipedia.org/wiki/Vergleich_von_Unicode_Kodierungen
18 Stimmen
Tut mir leid, es gibt keine einfache Antwort. Ich finde die ganze Sache ein bisschen verwirrend. Es wurde behauptet, dass Unicode zwei Bytes benötigt und alle Zeichen darstellen kann, aber es hat sich herausgestellt, dass zwei Bytes nicht ganz ausreichend sind.
14 Stimmen
"Einfache Antwort": Ein Unicode-Zeichen benötigt 1-4 Bytes. Unicode deckt viele Sprachen ab, aber nicht alle. Als ich das letzte Mal nachgesehen habe, war Klingonisch zum Beispiel kein offizieller Unicode-Zeichensatz.
10 Stimmen
Klingonisch ist nicht Teil des Unicode-Standards selbst, nein. Es verwendet stattdessen die Private Use Area von Unicode (U+F8D0 - U+F8FF).
2 Stimmen
Retterfrage - danke. Meine Situation ist die Speicherung von Daten über SCORM 1.2 konforme LMSs... der Standard für SCORM 1.2 'cmi.suspend_data' ist 4096 Bytes Daten, von denen ein früherer Entwickler annahm, dass wir 4096 Zeichen speichern können. Oh Mann, da hat er sich geirrt - ich habe gerade herausgefunden, warum unsere Lesezeichen bei langen Kursen nicht funktionieren. Jetzt weiß ich, dass wir UTF-8 verwenden und daher 4 Bytes pro Zeichen benötigen, was uns 1024 Zeichen gibt.
1 Stimmen
Eine Menge von Zeichen menschlicher Sprachen sind nicht in Unicode enthalten.
0 Stimmen
@NicolasBarbulesco Zum Beispiel?
0 Stimmen
Das hat mir geholfen: gammon.com.au/unicode