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
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#1

Unicode fails

  Alt 29. Nov 2020, 16:17
Moin,

ich habe gerade schön gelacht. In einen TV-Beitrag haben die Umlaute mal richtig versaut.
Das möchte ich euch nicht vorenthalten:
https://www.youtube.com/watch?v=JjiaLf3jGxw&t=1405s

Ich würde mal tippen, dass die Schnittsoftware kein Unicode kann.

Wenn ihr auch Unicode fails kennt, dann schreibt die hier ruhig mal rein.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.210 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Unicode fails

  Alt 30. Nov 2020, 08:13
Oder einfach jemand hat irgendwo zu viel UTF8-Codierung eingebaut.
Ist mir auch schon vorgekommen das an durch eine Systemänderung auf einmal an einer Stelle statt String ein UTF8-Codierter String gekommen ist.
Kommt auch vor obwohl überall mit Unicodestrings gearbeitet wurde.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: Unicode fails

  Alt 30. Nov 2020, 10: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
900 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Unicode fails

  Alt 30. Nov 2020, 18: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.308 Beiträge
 
Delphi 12 Athens
 
#5

AW: Unicode fails

  Alt 30. Nov 2020, 18: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 19:05 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Unicode fails

  Alt 30. Nov 2020, 21: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
Redeemer

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

AW: Unicode fails

  Alt 2. Dez 2020, 18: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
900 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Unicode fails

  Alt 2. Dez 2020, 20: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 13:30 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 by Thomas Breitkreuz