Wie viele Zeichen können mit Unicode abgebildet werden?
Ich fordere, dass die Anzahl aller möglichen gültigen Kombinationen in Unicode mit Erklärung. Ich kenne einen char kodiert werden kann, wie 1,2,3 oder 4 bytes. Ich versteh auch nicht, warum die Fortsetzung bytes Einschränkungen haben, obwohl ab byte, char löscht, wie lange es sein sollte.
InformationsquelleAutor der Frage Ufuk Hacıoğulları | 2011-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
1,111,998: 17 Flugzeuge × 65.536 Zeichen pro plane - 2048 surrogates - 66 noncharacters
Beachten Sie, dass UTF-8 und UTF-32 könnte theoretisch codieren, viel mehr als 17 Flugzeuge, aber die Auswahl ist eingeschränkt, basierend auf der Einschränkungen der UTF-16-Codierung.
109,384 code Punkte sind eigentlich zugewiesen, in Unicode 6.0.
Den Zweck dieser Beschränkung in UTF-8 zu machen, ist die Codierung self-synchronizing.
Für ein Gegenbeispiel, halten die chinesische GB18030-Codierung. Dort ist der Brief
ß
wird dargestellt als byte-Sequenz81 30 89 38
enthält die Kodierung der Ziffern0
und8
. Also, wenn Sie einen string-searching-Funktion nicht für diese Codierung-spezifische Macke, dann ist die Suche für die Ziffer8
finden Sie eine false-positive-innerhalb der Buchstabenß
.In UTF-8, das kann nicht passieren, weil die nicht-überlappung zwischen Blei-bytes und trail-bytes gewährleistet, dass die Codierung eine kürzere Charakter kann nie auftreten, in der Codierung einer mehr Charakter.
InformationsquelleAutor der Antwort dan04
Unicode ermöglicht 17 Flugzeugedie jeweils 65.536 mögliche Zeichen (oder "code points"). Dies gibt ein total von 1,114,112 mögliche Zeichen. Derzeit werden nur etwa 10% dieser Raum zugewiesen wurde.
Die genauen details dazu, wie diese Codepunkten codiert sind, unterscheiden sich die mit der Kodierung, aber deine Frage macht es klingen wie Sie denken UTF-8. Der Grund für Beschränkungen auf die Fortsetzung bytes sind vermutlich so ist es leicht zu finden, die Anfang des nächsten Zeichens (als Fortsetzung Charaktere sind immer von der form 10xxxxxx, aber die Start-byte kann nie diese form).
InformationsquelleAutor der Antwort Simon Nickerson
Unicode unterstützt 1,114,112 code Punkte. Es sind 2048 Surrogat-Codepunkt, was 1,112,064 Skalare Werte. Von diesen gibt es 66 nicht-Zeichen, was zu 1,111,998 möglich-codierte Zeichen (es sei denn, ich machte einen Rechenfehler).
InformationsquelleAutor der Antwort Philipp
Geben, um ein metaphorisch genaue Antwort
all of them
.Fortsetzung bytes in der UTF-8-Codierungen erlauben Synchronisierung, von den kodierten octet-stream in das Gesicht von "line-noise". Der encoder, nur brauchen Vorlauf für ein byte, das nicht über einen Wert zwischen 0x80 und 0xBF zu wissen, dass das nächste byte ist der Beginn einen neuen Charakter zeigen.
In der Theorie, die Kodierungen verwendet, die sich heute erlauben für den Ausdruck der Zeichen, deren Unicode-Zeichen Nummer ist bis zu 31 bit Länge. In der Praxis werden diese Codierung wird tatsächlich umgesetzt, die auf Dienste wie Twitter, wo die maximale Länge tweet codieren kann bis zu 4,340 bits im Wert von Daten. (140 Zeichen [gültige und ungültige], mal 31 bits jedes.)
InformationsquelleAutor der Antwort Andy Finkenstadt
Unicode ist keine Codierung, ist ein Zeichen-Zuordnung. Laut Wikipedia Unicode enthält derzeit 109242 deutliche Zeichen.
InformationsquelleAutor der Antwort orlp
Unicode hat den hexadezimalen Höhe von 110000, das ist 1114112
InformationsquelleAutor der Antwort Dmitry Pleshkov