Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Toemsel

Treue Seele

  • »Toemsel« ist der Autor dieses Themas

Beiträge: 310

Wohnort: OÖ

Beruf: Student und Programmierer

  • Private Nachricht senden

1

11.03.2014, 17:13

Encoding

Seit einiger Zeit quält mich eine Frage... Leider konnte ich im www keinen Lösungsansatz für meine Frage finden.
Vielleicht weiß ja einer von euch weiter.

Wie ist eine ältere Applikation, ohne Unicode-aware, in der Lage UNC-2 bzw. UTF16-32 zu lesen?
Und auch umgekehrt? Wird der byte code direkt in einen Konvertierer geschmissen und auf 16 bzw 32 umgerechnet?
Jedoch kann ich mir denken, dass viel Rechenleistung in permanente Konvertierung investiert werden müsste, wenn bei jeder Anfrage die Request/Response übersetzt werden muss.

Zudem frage ich mich wie große Datenbanken (wie die von Facebook) alle möglichen Zeichensätze abspeichert und an meinen
Browser, der eventuell nur UTF8 implementiert, weiterleitet?

:huh: lg

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

11.03.2014, 17:49

Wie ist eine ältere Applikation, ohne Unicode-aware, in der Lage UNC-2 bzw. UTF16-32 zu lesen?

Gar nicht, würde ich sagen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

11.03.2014, 17:54

Das Konvertieren benötigt O(1) von daher ist es vernachlässigbar.
O(n) bei einem String der Länge n. Dennoch praktisch irrelevant.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

11.03.2014, 18:03

Verschiedene Kodierungen unterscheiden sich in der Art und Weise, wie die numerischen Werte der zu speichernden Zeichen abgelegt werden, dadurch welche Wertebereiche zur Verfügung stehen und welches Zeichen durch welchen numerischen Wert dargestellt wird.
Unicode spezifiziert, welche numerischen Werte für welche Zeichen stehen, wobei die genaue Speicherung immernoch abhängig von der jeweiligen Kodierung ist. (UTF-8 verwendet bspw. für ASCII-Zeichen nur 1 Byte im Gegensatz zu bspw. UTF-16) Da Unicode-Kodierungen eine variable Byte-länge besitzen, lassen sich damit alle von Unicode spezifizierten Zeichen speichern, sodass für verschiedene Schriftzeichen (lateinisch, kyrillisch, chinesisch, ...) die gleiche Kodierung verwendet werden kann.
Ältere Kodierungen hatten aber keine standardisierte Zuordnung zwischen numerischem Wert und Zeichen. Die meisten Kodierungen sind zwar ASCII-kompatibel, besaßen aber dennoch ihre eigenen, zusätzlichen Zeichen, auf exotischereren Systemen gab es aber durchaus auch andere Kodierungen oder es wurden einfach mal andere Zeichentabellen verwendet, wodurch (als Beispiel) die 33 nicht auf ein Ausrufezeichen, sondern ein Bodentile verwies.

Alte Software kann dies entweder, weil ihr das bereits explizit beigebracht wurde, oder weil das System für entsprechende Operationen verwendet wird, welches dann entsprechende Kodierungen kennen muss. Die Software muss dafür lediglich eine variable bzw. ausreichend große Breite für das Speichern einzelner Zeichen vorsehen.
Es könnte aber auch sein, dass die Software nicht Zeichen-, sondern Byte-weise funktioniert und die verwendeten (System-)Bibliotheken dann auf die richtige Kodierung schließen können.
Allerdings kann ich nur Vermutungen aufstellen... =/
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Toemsel

Treue Seele

  • »Toemsel« ist der Autor dieses Themas

Beiträge: 310

Wohnort: OÖ

Beruf: Student und Programmierer

  • Private Nachricht senden

5

11.03.2014, 18:58

Genau diese Problemantik stellt sich eben.
Der Speicherverweis von UTF8 und der höheren Version unterscheidet sich, womit eine Verknüpfung der Tabellen sofort auszuschließen ist.

@LetsGo

Nur wie konvertiert mein UTF-8 Browser dies zurück ;)


Ich werde die Frage an meine nächst höhere Instanz weiterleiten.
Werde die eventuell beantwortete Frage hier posten.

Werbeanzeige