UTF 8 decodieren

konoha

Bekanntes Mitglied
Habe hier mehrere 8 bit Binärblöcke vor mir liegen und die Aufgabe ist es :

Decodieren Sie folgenden binären UTF-8 Code:

11000011 10011100 01100010 01110101 01101110 01100111 00100000 01100111 01100101 01101100 11000011 10110110 01110011 01110100 00100001

Wie geht bitte die Umrechnung?

Sobald ich mir die Tabelle ansehe http://unicode-table.com/de/#control-character,

habe ich keinen blassen Schimmer wie ich auf die Zahlenspalte kommen soll?
Also beispielsweise:
0090
00E0
01C0

Die Zeile oben hingegen scheint ja offensichtlich Hexadezimal zu sein. Wenn ich die Blöcke jeweils in Hexadezimal umrechne.

Wie komme ich aber auf die Spalte?
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Das ist binär. Wie die Aufgabe schon sagt. Wie man binär in hexadezimal umrechnet solltet ihr also eigentlich wissen.
 

konoha

Bekanntes Mitglied
Wenn ich den ersten binärblock in hex umrechnen erhalte ich

11000011 = C3

Und wie komme ich nun mit der c3 bitte beispielsweise auf die 01C0?
 

stg

Top Contributor
Deine Tabelle ist für Unicode-Zeichen, du hast die Zeichen aber UTF-8 kodiert.
Schnapp dir eine passende Übersetzungs-Tabelle und dann kann's los gehen.

11000011 ist in HEX C3, das ist schon mal richtig. 0xC3 allein repräsentiert aber noch kein Zeichen, sondern nur einen "Zeichen-Block" zusammen mit den nächsten 8bit wird daraus
0xC3 0x9C
das entspricht dem Unicode-Zeichen U+00DC aus deiner Tabelle (ist aber eigentlich irrelevant)
beziehungsweise ganz einfach dem Buchstaben Ü
 

konoha

Bekanntes Mitglied
@stg
Vielen dank für die Erklärung. Das hilft mir sehr weiter!
Nichts desto trotz liegen mir ungereimheiten vor. Was bedeutet denn bitte die 0x vor dem C3 bzw. vor der 9C?
Die Wiki Seite stiftet leider nur noch mehr Verwirrung. :(

Wie würde es denn aussehen wenn ich die 2 8bitblöcke in utf32 dekodieren müsste?
 

stg

Top Contributor
UTF-32 Zeichen sind in 32 bit kodiert, nicht in 8 bit und auch nicht in 2 mal 8 bit ... da fehlen dann immer noch 16 bit. Die Frage ist also schon fehlerhaft.

Das 0x ist nur eine übliche Notation dafür, dass eine HEX-Zahl folgt.
 

konoha

Bekanntes Mitglied
Also ich habe für die daraufolgenden 16 bits:

0x62 und 0x75
Und bei den ersten 16bits waren es ja 0xC3 und 0xC9.

Ich kann keine UTF-32 tabelle im netz finden? Bei der UTF 8 Tabelle wars kein Problem. Aber wieso gibt es bitte keine Tabelle zu UTF-32?
 

konoha

Bekanntes Mitglied
Da ich dank deiner hilfe nun das prinzip der dekodierung in utf8 verstanden habe, wollte ich zu der naechsten teilaufgabe übergehen:

Eine Teilaufgabe (siehe screenshot). Den ich nicht ganz verstehe. Deswegen wollte ich das mit utf 32 wissen.

Da steht naemlich "Drücken Sie diesen Text UTF-32-kodiert in Hexadezimaldarstellung aus"

Was genau heisst das? Heisst das das ich den binaercode in utf 32 umschreiben muss und anschließend es in hexadezimal umrechnen muss?
 

Anhänge

  • rps20151101_214905.jpg
    rps20151101_214905.jpg
    132,8 KB · Aufrufe: 35

stg

Top Contributor
Nein, damit ist nun gemeint, dass du den zuvor entschlüsselten Text nun UTF-32 kodieren sollst.

Also: 11000011 10011100 haben wir entschlüsselt zu Ü
Kodieren wir das Ü nun UTF-32 wird daraus: 0x000000DC

Siehe z.B. hier: http://www.fileformat.info/info/unicode/char/dc/index.htm

Ich find's übrigens echt klasse, dass ihr UTF-8 ent- bzw UTF-32 ver-schlüsseln sollt, man euch aber eine Unicode-Tabelle in die Hand drückt. Damit ist die Aufgabe nicht lösbar ... schau dich lieber auf der von mir verlinkten Seite fileformat.info um. :)

Wie ist denn nun eigentlich deine Lösung zu Teil a) ?
 

konoha

Bekanntes Mitglied
Gut das du mich nochmal wegen der Teilaufgabe a ansprichst: Leider habe ich doch noch meine Schwierigkeiten sie zu lösen zumal ich jetzt bei der utf8 tabelle keine utf8hex stelle finde für die 0x62 und 0x75(16bit). :((

Was mache ich bitte falsch?
 

stg

Top Contributor
Auf fileformat.info hast du eine Suchbox. Gib da doch einfach mal 0x62 ein und schaue, was passiert....

Zu UTF-8: Hier werden 8bit-Blöcke für die Verschlüsselung verwendet. Das heißt aber nicht, dass immer 8bit genau ein Zeichen repräsentieren, denn damit könnte man dann nur insgesamt 256 (also 2 hoch 8) verschiedene Zeichen kodieren. Für die häufigsten Zeichen macht man das, aber für weniger häufigere Zeichen verwendet man zwei 8bit-Blöcke, für noch seltenere Zeichen verwendet man drei oder sogar vier aufeinander folgende 8bit-Blöcke.
Siehe dazu z.B. hier: http://www.fileformat.info/info/unicode/utf8.htm

Übrigens: Es gibt keinen Grund dazu die Binärzahlen zuerst in HEX-Zahlen umzurechnen.

Um das vielleicht noch einmal zu verdeutlichen: Bei der Aufgabe geht es in keinster Weise darum irgendetwas nachzurechnen. Du musst einfach nur anhand einer Übersetzungstabelle den Text dekodieren bzw später wieder (anhand einer anderen Tabelle) kodieren.
Die HEX-Darstellung des UTF-xxx Codes dient einfach nur dazu, den Code etwas "lesbarer" zu gestalten.
 

konoha

Bekanntes Mitglied
Vielen dank für die vielen Worte! Ich habe jetzt endlich den UTF-8 code dekodiert.

Ich habe mir auch zu jedem "Buchstaben, Zeichen" den ich in auf der Seite erfassen konnte sämtliche UTF-32(hex) wie z.B (0x00000020) (20) notiert.

Was genau muss ich jetzt machen im Bezug auf Teilaufgabe b, da du geschrieben hast, dass ich nach dem Dekodieren der UTF-8 nun eine weitere Tabelle hinzuziehen muss?
 

stg

Top Contributor
Wenn du zu jedem "Zeichen" den UTF-32 Code schon hast, dann bist du fertig. Du kannst gerne deine Lösungen zu a) und b) posten, dann kann ich dir sagen, ob das soweit alles richtig ist :)
 

Flown

Administrator
Mitarbeiter
Einmal zum ersten Buchstaben:
11000011 10011100 (C39C) -> rot markiert ist die UTF-8 Darstellung, dass 2 Byte verwendet wurden, um einen Buchstaben zu kodieren -> in der Tabelle nachsehen -> Ü

Ü -> in UTF-8 (siehe oben) -> Kodierungszeichen (rote Zahlen) weglassen, dann erhälst du -> 000 1101 1100 (DC) -> 0x000000DC -> UTF-32(hex)
 

Null-Checker90

Neues Mitglied
Haha... sind scheinbar im selben Kurs :D
Hänge auch an der Aufgabe -.-`
Aber das hilft mir hier leider auch nicht weiter... Hat ja auch nichts mit der Tabelle zu tun die der Prof uns gegeben hat...
 

konoha

Bekanntes Mitglied
@Null-Checker90
Hab dir eine pm geschickt.

Vielen dank an euch beiden flown und besonders stg!
Haette im nachhinein die Tabelle gar nicht gebraucht um utf32-hex zu bestimmen.

Also was die Lösung betrifft zu UTF-8, die liefert schon einen sinvollen kurz und knackigen (Satz). :)
Von daher denke ich ist es nicht nötig sie noch begutachten zu lassen. Vielen Dank nochmal! War meinerseits sehr Aufschlussreich!!
 

Neue Themen


Oben