Raucherkrebs: Unicode Aufgaben. Wer hat die Lösung?

Hallo Forum,

ich habe hier noch zwei Aufgaben, die ich nicht verstehe. Könnte mir mal jemand sagen, wie man die löst?

Aufgabe 1)

Gegeben sei die folgende statistische Verteilung des Auftretens von Kodepositionen in Unicode. Die Kodepositionen sind hexadezimal, die Wahrscheinlichkeiten dezimal geschrieben.

Kodeposition                 Auftrittswahrscheinlichkeit

000000 <= x < 000080             40%
000080 <= x < 000800             30%
000800 <= x < 010000             20%
010000 <= x < 110000             10%

a) Berechnen Sie die mittlere Anzahl von Bytes pro Zeichen für UTF-8 und UTF-16

b) Kann es andere Verteilungen als die obige geben, bei denen die mittlere Anzahl vo nBytes pro Zeichen in UTF-16 geringer is als bei UTF-8 ?

Aufgabe 2)

In UTF-8 könnten bei Verwendung von n >= 2 Kodierungseinheiten prinzipiell von der zweiten bis zur n-ten Kodierungseinheit jeweils alle 8 Bits benutzt werden. Welchen Vorteil hat es, trotzdem die obersten beiden Bits fest mit dem Wert zu belegen und nur die unteren 6 Bits zu benutzen?

  1. Moin!

    ich habe hier noch zwei Aufgaben, die ich nicht verstehe. Könnte mir mal jemand sagen, wie man die löst?

    Ist doch eigentlich recht simpel:

    Aufgabe 1)

    Kodeposition                 Auftrittswahrscheinlichkeit

    000000 <= x < 000080             40%
    000080 <= x < 000800             30%
    000800 <= x < 010000             20%
    010000 <= x < 110000             10%

    a) Berechnen Sie die mittlere Anzahl von Bytes pro Zeichen für UTF-8 und UTF-16

    Summe über alle Gruppen von (Länge der Codierung * Anteil am Bereich * Auftrittswahrscheinlichkeit)

    Die Wahrscheinlichkeitstabelle wird dir vermutlich nicht den Gefallen getan haben, exakt auf UTF-8-Grenzen von 2-, 3- oder 4-Byte-Sequenzen ausgelegt zu sein. Und auch bei UTF-16 ist der Dxxx-Bereich gesondert zu betrachten.

    b) Kann es andere Verteilungen als die obige geben, bei denen die mittlere Anzahl vo nBytes pro Zeichen in UTF-16 geringer is als bei UTF-8 ?

    Ja klar kann es das. Wenn man mit UTF-16 nur 2-Byte-Sequenzen hat, die mit UTF-8 3 oder mehr Byte erfordern.

    Aufgabe 2)

    In UTF-8 könnten bei Verwendung von n >= 2 Kodierungseinheiten prinzipiell von der zweiten bis zur n-ten Kodierungseinheit jeweils alle 8 Bits benutzt werden. Welchen Vorteil hat es, trotzdem die obersten beiden Bits fest mit dem Wert zu belegen und nur die unteren 6 Bits zu benutzen?

    Mal überlegen... wie gut findet man z.B. Nullbytes in einem String, bzw. welche Sonderfunktion könnten die sonst noch so haben... Und was ist mit Vorwärts-Rückwärts-Lesbarkeit?

    - Sven Rautenberg

    1. Hallo,

      ich habe hier noch zwei Aufgaben, die ich nicht verstehe. Könnte mir mal jemand sagen, wie man die löst?

      Unicode-Abend im Selfforum, wie ich sehe.

      Ja klar kann es das. Wenn man mit UTF-16 nur 2-Byte-Sequenzen hat, die mit UTF-8 3 oder mehr Byte erfordern.

      Zum Beispiel: Chinesisch.

      In UTF-8 könnten bei Verwendung von n >= 2 Kodierungseinheiten prinzipiell von der zweiten bis zur n-ten Kodierungseinheit jeweils alle 8 Bits benutzt werden. Welchen Vorteil hat es, trotzdem die obersten beiden Bits fest mit dem Wert zu belegen und nur die unteren 6 Bits zu benutzen?

      Psst. Stell Dir mal vor, Dir fehlt aus irgendwelchen Gründen die erste Kodierungseinheit (das erste Byte), in dem in UTF-8 angegeben ist, wieviele der nachfolgenden Bytes für die Kodierung des Zeichens benutzt werden. Naa?

      Tim