AGB  ·  Datenschutz  ·  Impressum  







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

Kodierung in UCS-2 Little Endian

Ein Thema von Dragon27 · begonnen am 22. Jan 2015 · letzter Beitrag vom 10. Okt 2019
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.230 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 14:20
Das würde ich testen, aber auch mal den Hersteller fragen wie "utf-16" im Header zu "ucs-2 LE" passt, denn es gibt auch "ISO-10646-UCS-2" als XML encoding.
Solange man nicht Klingonischen Text überträgt ist UTF-16 und UCS-2 das gleiche. UTF-16 erweitert UCS-2 um einen ähnlichen Mechanismus wie UTF-8 die Ansistrings. 99,99% der realen vorkommenden UTF-16 Texte sind 1:1 in UCS-2 abbildbar.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von NicoDE
NicoDE

Registriert seit: 16. Jul 2012
Ort: Darmstadt
26 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 14:52
Solange man nicht Klingonischen Text überträgt ist UTF-16 und UCS-2 das gleiche.
Ja, aber wenn die Maschine spezielle UCS-2 Code-Units braucht, die als UTF-16 Surrogates interpretiert werden, dann braucht man eine Alternative.
Also ist eher die Frage, bei welchen Zeichen es nicht funktioniert und wie die Quelldaten erzeugt/generiert werden...
Nico Bendlin
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 14:58
Das würde ich testen, aber auch mal den Hersteller fragen wie "utf-16" im Header zu "ucs-2 LE" passt, denn es gibt auch "ISO-10646-UCS-2" als XML encoding.
Solange man nicht Klingonischen Text überträgt ist UTF-16 und UCS-2 das gleiche. UTF-16 erweitert UCS-2 um einen ähnlichen Mechanismus wie UTF-8 die Ansistrings. 99,99% der realen vorkommenden UTF-16 Texte sind 1:1 in UCS-2 abbildbar.
In Statistik bin ich ganz schwach, aber dann wäre mit diesem Wert das Risiko auf ein nicht abbildbares XML Dokument zu laufen um einige Größenordnungen größer als einen Sechser im Lotto zu haben? (Laut Wikipedia 0,0000064360%) - Andererseits weiss ich nicht, wie viele XML Dateien so eine Lasermschine pro Woche bekommt, Millionen wohl kaum ...
Michael Justin

Geändert von mjustin (22. Jan 2015 um 15:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 15:56
Andererseits weiss ich nicht, wie viele XML Dateien so eine Lasermschine pro Woche bekommt, Millionen wohl kaum ...
Mit viel Glück kann es ja auch gleich beim ersten Mal knallen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.230 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 17:52
Ich glaube nicht das man im Bereich der erstellen dieser Daten in die Gefahr kommt Zeichen zu haben die in UTF-16 und UCS-2 anders codiert wären.

Unsere Anwendung lief problemlos auf einem UCS-2 System (Windows 2000) und läuft auch Problemlos auf UTF-16 Systemen (Windows XP und neuer) ohne eine einzige Quellcodezeile angepasst zu haben!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 18:13
Habt ihr auch damals Daten als UCS-2 gespeichert und dann versucht als UTF-16 zu laden?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 18:33
Habt ihr auch damals Daten als UCS-2 gespeichert und dann versucht als UTF-16 zu laden?
Das sollte gehen, UCS-2 umfasst die BMP, welche Platz für 65.536 Zeichen hat.

Die umgekehrte Richtung geht nicht (UTF-16 nach UCS-2 konvertieren). Für die Zeichencodierung stehen in Unicode insgesamt 1.111.998 Codepunkte zur Verfügung. Und 1.111.998 > 65.536.

Wenn man mit der Lasermaschine zum Beispiel keine Emojis oder Mahongg-Zeichen ausgeben muss, Gl♫ckwunsch
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.230 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 19:03
Wenn man mit der Lasermaschine zum Beispiel keine Emojis oder Mahongg-Zeichen ausgeben muss, Gl♫ckwunsch
Das ist kein Problem. Es wird so gemacht wie bei "dummen" Druckern auch. Statt dem Drucker zu sagen "Drucke Zeichen ♫" sagt man ihm. MoveTo(x,y); LineTo(...); ...
Und deshalb wird das UCS-2 kein Problem darstellen da der Befehlsvorrat mit Sicherheit keinen ♫-Befehl kennt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von NicoDE
NicoDE

Registriert seit: 16. Jul 2012
Ort: Darmstadt
26 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Kodierung in UCS-2 Little Endian

  Alt 23. Jan 2015, 07:34
Die umgekehrte Richtung geht nicht (UTF-16 nach UCS-2 konvertieren).
Soweit richtig. Aber ein UTF-16-Parser würde in UCS-2 Code-Units finden die als Surrogates interpretiert werden (die keine sein sollen) und dann hängt es vom Parser ab, was er damit macht. Das Prolem taucht zum Beispiel dann auf, wenn man UTF-16 Code-Units direkt mit UTF-8 codiert ohne es vorher in Unicode zu konvertieren - für dieses Problem wurde CESU-8 definiert

edit: Auch bei UCS-2 sind U-D800 bis U-DFFF nicht erlaubt... was mich wieder die Frage stellen lässt, welche Zeichen denn nicht funktionieren. Aber wahrscheinlich hat sich die Frage durch die Verwendung von UTF-16 ohnehin erledigt
Nico Bendlin

Geändert von NicoDE (23. Jan 2015 um 08:24 Uhr)
  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 23:41 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