UTF-8 Codierungsfrage

Hi-Ho!
Ich weiß beim besten Willen nicht, in welches Computer-Brett ich die Frage einsortieren soll.

Folgendes: Ich soll für ein ZEichen mit gegebenen UNI-Code zuerst den binären UNI-Code errechnen, dann den binären UTF-8 - Code.

Alles soweit verstanden, kann ich.
Allerdings bin ich über etwas gestolpert, vielleicht kann mir das jemand beantworten: Ich bekomme aus den 4 Hexadezimalstellen des UNI-Codes ja maximal 16 binäre Stellen um sie in die 4 Byte für den Unicode zu verteilen. Neben den „Steuerstellen“ (also die 11110 im ersten und die 10 in den folgenden Bytes) habe ich dort theoretisch ja 21 Stellen zu füllen. Die werde ich aber nie mit den 16 Stellen ausnutzen.

Hat das einen Sinn? Oder ist das eben einfach mal so?

(Das liest sich jetzt vielleicht ein bisschen komisch alles, aber wer sich damit näher auskennt, wird hoffentlich wissen, was ich meine)

Danke und Grüße
Bufo

Es ist einfach so.
Siehe http://de.wikipedia.org/wiki/UTF-8#Anmerkungen

Hallo Bufo,

Du vergisst z.B. die Chinesen mit ihrer Bilderschrift. Die brauchen schon für den einfachen Grundwortschatz um die 30’000 Zeichen. Wie viele Zeichen der ganze Wortschatz benötigt weiss ich nicht und zudem gibt es nicht nur ein Chinesisch.
Dann sind da noch ein paar andere Länder in dieser Region.
Zudem soll man auch noch alte Sprachen codieren können, wie z.B. die Keilschrift oder ägyptische Hieroglyphen.

Achja, Klingonisch gibt’s auch noch :smile:

MfG Peter(TOO)
P.S.

Ich verschiebe dich mal nach „Programmierung Allgemein“. Die erste Idee wäre vielleicht „Textverarbeitung“ aber diese bezieht sich auf die Anwendung von Editoren. Mit UTF, ASCII usw. müssen sich die Programmierer rumschlagen.

Aber mehr als 16 binäre Stellen bekommen die doch auch nicht hin.
Oder gibt es UTF-8-Code (warum eigentlich 8?) mit mehr als 4 Hex-Stellen für ein Zeichen?

Also soweit ich das lese, könnte das System da durchaus noch erweitert werden?
Mehr Hex-Stellen, dann auch mehr Bin-Stellen…

Heyo,

der UNICODE-Standard umfasst mehr als 16 Bit. UNICODE 7.0 dehnt den verfügbaren Bereich bis 10FFFD aus (das sind 21 bit).

Ursprünglich sollte UTF-8 sogar bis zu 8 Byte lange Kodierungen erlauben, entsprechend 42 Bit.
Das hat anfangs aber niemand implementiert, so dass die Definition später auf die aktuellen max. 4 Byte eingeschränkt wurde.

:wave:
KHK

10FFFF - das füllt die 21 Bit ja eben nicht aus (das ist meine Frage).
Die 10 für den plane, die FFFF für das Zeichen.

Klar, ein FFFFF würde dann wieder nicht mit den Bytes aufgehen - ist wohl einfach so.

Danke und Grüße

16 Bit fürs Zeichen, 5 Bit für die Ebene
10FFFD = 1 0000 1111 1111 1111 1101

… füllt ein UTF-8 Zeichen bis zum Anschlag.

UNICODE hat ja kleiner angefangen, in der Version 1 waren es noch 16 Bit.
UTF-8 wurde festgelegt kurz nachdem der UNICODE-Zeichenvorat um ein erhebliches gewachsen war.
Da war es sicherlich naheliegend, genügend Luft nach oben zu erlauben.

Danke allen für die schnellen und fachkundigen Antworten. :blush:
Ich hätte da dann gleich noch eine Frage, weil ich da soviel Zeit für die Erstellung brauche.
Stichwort: Ersatzschaltbild…

In welches Brett ich das wohl stecken soll? Ins selbe…

Bis gleich
Bufo

Genau, aber bis jetzt sind erstmal 16 bits gestgelegt, wiel noch keiner mehr implementiert hat, das kann sich aber bei Bedarf ändern, dann gibt es wohl eine neue rfc.