AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode fails

Ein Thema von generic · begonnen am 29. Nov 2020 · letzter Beitrag vom 2. Dez 2020
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Unicode fails

  Alt 30. Nov 2020, 09:51
vielleicht heißt der ja so
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
905 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unicode fails

  Alt 30. Nov 2020, 17:43
So eine falsche Kodierung wie im Video oben hatte ich mal bei einer Bestellung im xkcd-Shop. Bei der Stadt war das "ü" kaputt, und in Namen das "ß". Ist aber trotzdem ohne Verzögerung angekommen.

Ansonsten: Im Rahmen meiner ID3-Tag-Library bin ich mal auf ein mp3-File gestoßen, bei dem die Informationen "seltsam" angezeigt wurden. Mit Hilfe von HxD habe ich dann erkannt, dass folgende Kodierung verwendet wurde:
  • UTF-16 (ok, kein Problem)
  • Nullterminiert (ist ja durchaus sinnvoll)
  • mit Byte-Order-Mark (kann man machen ...)
  • das alles aber zeichenweise
Kein Witz - 6 Byte pro Zeichen. Für jedes 2-Byte Zeichen zusätzliche 2 Byte BOM und 2 Byte Terminator. Ich habe dann beschlossen, für diesen Murks keine Erkennungs-Heuristik einzubauen. Bei sowas wird dann einfach Murks angezeigt.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.360 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unicode fails

  Alt 30. Nov 2020, 17:55
Ich hatte nichtmal gesehn wo der Fehler sein sollte?
Hab mir aber auch nicht jede Sekunde des Films genau angeguckt.

@Gausi: Na komm schon, das zu implememntieren wäre doich witzig geworden.
Noch besser wäre es aber, wenn jedes Zeichen auch noch anders kodiert worden wäre.
Ob die beim NSA auch so faul sind? Dann hätten wir jetzt eine neue "Verschlüsselung" gefunden.



Ein Deutscher Eurofighter-Pilot.
Und im Vorspann kommt Deutschland auch nur einmal vor ... außer den Braunkohledingern hat Deutschland doch nichts Großartiges zu bieten
und wenn wir die bald alle abgeschaltet haben, dann existieren wir in solchen Dokumentationen garnicht mehr.

[edit]
Grad nochmal geguckt und da war es ja ... aber nach ner halben Sekunde durch die Werbung verdeckt. (sollte ich hier auch mal den YT-Werbeblocker installieren)


Ich denk mal das Programm kann Unicode, aber irgendwo wurde UTF-8 als ANSI/ASCII behandelt, z.B. ohne BOM gespeichert und dann beim Einlesen mit falscher Kodierung.


Wir haben jetzt einen Linux-"Guru" in der Firma
und weil sein Programm nicht mit UTF-8-Dateien mit BOM klar kommt und abstürzt,
wurden alle Dateien als UTF-8 ohne BOM neu abgespeichert,
aber nun kommt Delphi nicht mit UTF-8 ohne BOM klar
und speichert das wieder mit BOM ab und wenn das dann im GitHub landet,
dann verreckt dessen CI, wenn es die SQL-Scripte testen will.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Nov 2020 um 18:05 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Unicode fails

  Alt 30. Nov 2020, 20:07
Wir haben jetzt einen Linux-"Guru" in der Firma
und weil sein Programm nicht mit UTF-8-Dateien mit BOM klar kommt und abstürzt,
wurden alle Dateien als UTF-8 ohne BOM neu abgespeichert,
aber nun kommt Delphi nicht mit UTF-8 ohne BOM klar
und speichert das wieder mit BOM ab und wenn das dann im GitHub landet,
dann verreckt dessen CI, wenn es die SQL-Scripte testen will.
Da stelle ich mir immer vor, wenn so Leute in 1970 dachten "In 50 Jahren haben wir fliegende Autos und Weltfrieden und so" und dann scheitert Computersoftware immer noch an Text-Encoding.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.360 Beiträge
 
Delphi 12 Athens
 
#5

AW: Unicode fails

  Alt 30. Nov 2020, 20:25
Nja, Problem ist ja, dass im Linux viele Programme ohne BOM davon ausgehen, dass es UTF-8 ist (bzw. die haben eine Encoding-Erkennung drin), während im Windows viele Programme standardmäßig von ANSI ausgehn.
Mit BOM wüsste jeder was es ist.

Bin ich der Einzige, der meint, dass man etwas so bauen sollte, dass Programme mit den frischinstallierten Standardeinstellungen etwas hinbekommen sollten?
k.A. was so schwer dran ist das BOM einfach zu ignorieren (oder besser noch zu behandeln), in dem Programm was er geschrieben hat, so dass auch Fremdprogramme (die ich nicht selbst programmiert habe) damit umgehen können?
Sorry, wenn ich zum Bearbeiten von SQL-Dateien (was selten passiert) gleich die schon offene Delphi-IDE benutzte, wenn ich parallel im DelphiCode rumfummle und keine "Lust" hab noch ein weiteres Programm zu installieren und zu nutzen. (ja, Codefolding, Codevervollständigung und so gibt es da nicht, aber brauch ich auch nicht)



Vor 20 Jahren wollte Intel in 10 Jahren (also vor 10) den P4 so weit haben, dass der mit 30 GHz läuft. (falls ich das vor Kurzem richtig gelesen hatte)
Datei aber bis zu 5 KW verbrät, also 20 A zieht (aus der Stecktose und somit am Starkstromstecker) und durch den Chip selbst 2500 A "rauchen" müssten (bei 2 V).
(wenn jetzt ein Chip grade mal so die 3 GHz schafft, ist das "schnell")
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Unicode fails

  Alt 1. Dez 2020, 10:00
Da stelle ich mir immer vor, wenn so Leute in 1970 dachten "In 50 Jahren haben wir fliegende Autos und Weltfrieden und so" und dann scheitert Computersoftware immer noch an Text-Encoding.
Passend dazu:
https://xkcd.com/1953/

Und die zum eigentlichen Thema:
https://xkcd.com/1137/
https://xkcd.com/1209/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.360 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unicode fails

  Alt 1. Dez 2020, 10:32
Falls jemand den Text nicht lesen kann.
202E schaltet von left-to-right um

Das ist hier auf irgendeinem Shortcut ... k.A. auf Welchem, ich erwisch ihn nur machmal und muß dann neu starten, weil ich den Shortcut mir nicht merken kann.
Genauso wie in der Delphi-IDE der Editormode mit dem grauenhaft permanenten Verhalten der Selektierung.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Unicode fails

  Alt 2. Dez 2020, 17:19
Es gibt genügend Programme, die an UTF-16 scheitern, weil sie nur UCS-2 unterstützen. Von denen, die UTF-16 unterstützen, aber zum Speichern/Datentransfer meinen, sie würden UTF-8 benutzen, nutzen manche in Wirklichkeit CESU-8.

Delphi unterstützt seit der Einführung in Delphi 2009 UTF-16 komplett. UTF8Decode funktioniert bei mir hingegen in D2009 teils nicht mit z.B. großen Umlauten, weshalb ich eine eigene Decoderfunktion verwende. In neueren Delphis funktioniert mein Code nicht mit, dafür aber ohne diese eigene Decoderfunktion.

Unsere Telefonanlage in der Firma (Starface) ist sehr interessant: Die Mobile App ist unicode-fähig. Der Windows-Client kann nur UCS-2. Fügt man ein Zeichen außerhalb der BMP ein, kommt es trotzdem auf dem Handy richtig an, obwohl der Windows-Client es als zwei Klötzchen darstellt.

Im Rahmen meiner ID3-Tag-Library bin ich mal auf ein mp3-File gestoßen, bei dem die Informationen "seltsam" angezeigt wurden. Mit Hilfe von HxD habe ich dann erkannt, dass folgende Kodierung verwendet wurde:
  • UTF-16 (ok, kein Problem)
  • Nullterminiert (ist ja durchaus sinnvoll)
  • mit Byte-Order-Mark (kann man machen ...)
  • das alles aber zeichenweise
Kein Witz - 6 Byte pro Zeichen. Für jedes 2-Byte Zeichen zusätzliche 2 Byte BOM und 2 Byte Terminator. Ich habe dann beschlossen, für diesen Murks keine Erkennungs-Heuristik einzubauen. Bei sowas wird dann einfach Murks angezeigt.
Bist du dir sicher, dass du UTF-16 meinst und nicht UCS-2?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
905 Beiträge
 
Delphi 12 Athens
 
#9

AW: Unicode fails

  Alt 2. Dez 2020, 19:22
Bist du dir sicher, dass du UTF-16 meinst und nicht UCS-2?
Ähm ... nein. Aber ich habe grade noch mal in den ID3-Tag-Standard auf id3.org geschaut. Für Version ID3Tag 2.3 gilt
Zitat:
All Unicode strings use 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2).
Für Version 2.4 gilt:
Zitat:
Frames that allow different types of text encoding contains a text encoding description byte. Possible encodings:
  • $00 ISO-8859-1 [ISO-8859-1]. Terminated with $00.
  • $01 UTF-16 [UTF-16] encoded Unicode [UNICODE] with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00.
  • $02 UTF-16BE [UTF-16] encoded Unicode [UNICODE] without BOM. Terminated with $00 00.
  • $03 UTF-8 [UTF-8] encoded Unicode [UNICODE]. Terminated with $00.
Ob das nun wirklich genau so von den üblichen Libraries umgesetzt ist, weiß ich nicht. Nach meiner Erfahrung würde ich wetten: Ne.

Tatsächlich gibt es auch inoffizielle Mischformen der beiden Versionen, und für die ISO-8859-x Variante habe ich eine Heuristik, die ggf. das "x" aus dem Dateinamen versucht zu schätzen - denn das ist längst nicht immer ISO-8859-1.

(Du hast nicht zufällig ein paar Testfiles dazu irgendwo rumliegen? Zusammen mit Screenshots, wie der Text richtig aussähe? )
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz