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
Seite 2 von 3     12 3      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Kodierung in UCS-2 Little Endian

  Alt 22. Jan 2015, 20: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
 
#12

AW: Kodierung in UCS-2 Little Endian

  Alt 23. Jan 2015, 08: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 09:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Kodierung in UCS-2 Little Endian

  Alt 23. Jan 2015, 10:51
Es wird so gemacht wie bei "dummen" Druckern auch. Statt dem Drucker zu sagen "Drucke Zeichen ♫" sagt man ihm. MoveTo(x,y); LineTo(...); ...
Na dann isses doch irgendwie sinnlos, daß man zwangsweise doppelt so viel Daten hinschicken muß, wo doch ASCII ausreichen würde.
$2B or not $2B
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#14

AW: Kodierung in UCS-2 Little Endian

  Alt 25. Jan 2015, 10:12
Hallo zusammen,

erstmal danke für die vielen Antworten.

Ich hoffe ich kann auch hier ein paar Fragen beantworten:

1. Wieviele Dateien lädt ein Laser pro Tag?

Das ist unterschiedlich und kommt auf die Chargengröße an. Normalerweise wird 5 bis 10 mal pro
Tag ein neues File geladen.

2. Bei welchen Zeichen funktioniert der Code nicht?

Also er schafft es nicht einen "Line Feed character" richtig zu codieren. Der Laser bekommt das Zeichen
Code:
&xA;
sollte aber
Code:


bekommen. Das trat übrigends schon bei der ersten Datei auf

Mein aktueller Stand ist, dass ich versuche mit einem TXMLDocument das ganze ans laufen zu bekommen. Leider
gibt es bei LoadFromFile scheinbar keinen Parameter um das Encoding festzulegen... Geht das dann in diesem
Fall automatisch?

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Kodierung in UCS-2 Little Endian

  Alt 25. Jan 2015, 10:25
2. Bei welchen Zeichen funktioniert der Code nicht?

Also er schafft es nicht einen "Line Feed character" richtig zu codieren. Der Laser bekommt das Zeichen
Code:
&xA;
sollte aber
Code:


bekommen. Das trat übrigends schon bei der ersten Datei auf
Dein Problem hat eigentlich gar nix mit UTF-16 oder UCS-2 zu tun. Sondern einfach mit der unvollständigen Implementierung auf der Lasermaschine im Bereich Sonderzeichen.

Der XML-Standard schreibt die Möglichkeit vor Sonderzeichen auf mehrer Arten zu Codieren.
Bei einem LF wäre das die oben aufgeführten Möglichkeiten. Beide sind erlaubt und ein vollständig implementierter XML-Parser hat mit keiner davon Probleme.


Jetzt ist eigentlich die Aufgabe/Suche zu finden ob man einen XML-Parser darauf einstellen kann statt der Hexcodierung die Dezimalcodierung bei solchen Zeichen zu verwenden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Kodierung in UCS-2 Little Endian

  Alt 25. Jan 2015, 14:26
Leider
gibt es bei LoadFromFile scheinbar keinen Parameter um das Encoding festzulegen... Geht das dann in diesem
Fall automatisch?
XML ist standardmäßig UTF-8 (wenn nichts anderes gefunden) und ansonsten gibt es bei XML eigntlich keine BOM.
Die MultyByte-Zeichensätze werden Anhand des Encoding-Parameters in der XML-Processing-Instruction (<?xml encoding="..."> ) ermittelt.
Und bei den Unicode-Zeichensätzen fängt es mit dem ersten "<" an, also ob und wo dort die #0 drin steht wird erstmal entschieden, ob Little-Endiian oder Big-Endian und dann das Encoding.
Daher ist ein Encoding an den Load-Methoden nicht nötig, da alle nötigen Informationen genau definiert sind und immer in der Datei stehen müssen. (außer bei UTF-8, was ja der Standard ist)
XML ist so gestaltet, daß man mitten beim Lesen das Encoding umschalten kann. (siehe die Processing-Instruction, welche es innerhalb des XML-Dokumentets nicht nur für XML gibt ... "xml" ist dort der Prozessor-Name)

Und das mit den Sonderzeichen und dem "schrottigen" Parser hat der Vorgänger bereits erwähnt.
$2B or not $2B

Geändert von himitsu (25. Jan 2015 um 14:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von NicoDE
NicoDE

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

AW: Kodierung in UCS-2 Little Endian

  Alt 26. Jan 2015, 10:24
Also er schafft es nicht einen "Line Feed character" richtig zu codieren. Der Laser bekommt das Zeichen
Code:
&xA;
Hm, ich kenne es nur in der Form: &#xA;
Nico Bendlin
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Kodierung in UCS-2 Little Endian

  Alt 26. Jan 2015, 11:48
Also er schafft es nicht einen "Line Feed character" richtig zu codieren. Der Laser bekommt das Zeichen
Code:
&xA;
Hm, ich kenne es nur in der Form: &#xA;
Es kann als
Code:
& #10 ;
oder als
Code:
& #xA ;
übertragen werden und ist dabei völlig gleichwertig. (Die Leerzeichen bitte wegdenken, aber wenn ich die wegmache, dann zeigt der Browser und Editor nur einen Zeilenumbruch an - warum wohl )
Code:
& - Escapezeichen
# - jetzt kommt ein Wert für ein Zeichen
x - der Wert ist Hexadezimal
; - Ende der Durchsage
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (26. Jan 2015 um 11:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Kodierung in UCS-2 Little Endian

  Alt 26. Jan 2015, 11:53
(Die Leerzeichen bitte wegdenken, aber wenn ich die wegmache, dann zeigt der Browser und Editor nur einen Zeilenumbruch an - warum wohl )
Liegt eher an vBulletin das hier diese Element immer wieder nur als HTML direkt durchlässt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Kodierung in UCS-2 Little Endian

  Alt 26. Jan 2015, 14:28
&amp;#10;

[edit] hmmmmmmmmmm, warum wandelt vB das & nicht um?


& #38;#10; wird einfach gelöscht (doppelte Umwandlung? )
$2B or not $2B

Geändert von himitsu (26. Jan 2015 um 14:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 22:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz