Alex: braucht 64-Bit doppelt soviel Speicher wie 32-Bit?

Beitrag lesen

Hallo,

Wie soll ich denn eine in UTF-8 codierte Zeichenkette durch Random-Acces und zugehörige Codetabelle direkt in eine Darstellung überführt? An der wievielten Byteposition im Text beginnt denn das x-te Zeichen?

UTF-32 nutzen für die interne Speicherung, wenn sowas gewünscht ist. Wie häufig brauchst du "das dreihundertste Zeichen im Text", so dass du bei ASCII auf das 300. Byte zugreifen kannst, und bei UTF-8 alle 299 vorherigen Zeichen zu überspringen hast?

Ach, und das braucht dann nicht mehr Speicher und mehr Traffic?
Da habe ich wohl einen Trick verpasst.

Du hattest geschrieben, es bräuchte mehr Speicherplatz UND mehr Rechenzeit, und hast jeweils mit dem Worst Case (also quasi der Rechenzeit bei UTF-8 und dem Speicherverbrauch bei UTF-32) gerechnet. Das stimmt so nicht; eins von beiden fällt immer etwas günstiger aus, je nach Wahl. Und Random-Access braucht man wirklich fast nie.

Dass die Unicode-Stringverarbeitung ein bisschen aufwendiger ist als die von Single-Byte-Strings, bestreitet ja auch niemand. Der Punkt ist nur: Das ist es wert. Oder möchtest Du ca. 3 Milliarden Menschen erklären, dass sie ihre jeweilige Muttersprache abschaffen* sollen, nur weil wir ein paar Ticks sparen wollen?
Der Computer dient immer dem Benutzer. Wir lassen ihn aufwendige Grafiken etc. pp. rendern, nur damit die Oberfläche ein bisschen schöner aussieht (obwohl man ja auch mit einfachsten Schwarz-Weiß-Kästen arbeiten und damit viel, viel mehr Ticks sparen könnte). Dann kann ordentliche Textverarbeitung in mehreren Sprachen ja wohl nicht zu viel verlangt sein.

Viele Grüße,
Alexander

* Inklusive des Nicht-Abspeicherns aller vorhandenen und historischen Texte