Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unicode probleme (https://www.delphipraxis.net/119015-unicode-probleme.html)

day 19. Aug 2008 15:52


Unicode probleme
 
Hallo,
Ich habe folgendes Problem:
Ich möchte aus einem XML file einzelne Strings auslesen, welche chinesische symbole enthalten. Wenn ich mir das XMLFile ausgeben lasse (z.b. im Debugger oder log file), dann werden die symbole auch korrekt dargestellt. Wenn ich jedoch die XML struktur über die Nodes auslese, dann werden gewisse symbole durch Fragezeichen (?) ersetzt (allerdings nur ein paar wenige).

Hat jemand eine idee woran das liegen kann?


folgendermassen lese ich die nodes aus.
Delphi-Quellcode:
 XMLReader.LoadFromStream(TStringStream.Create(XMLFilte)) //XMLReader ist TXMLDocument
 .
 .
 .

 lStr := Node.Attributes['value']; // Node ist IXMLNode
Wenn ich Debugger auf dem Attributes bin, dann sehe ich noch dir korrekten Symbole. In der Variable lStr sind anschliessend allerdings teilweise Fragezeichen enthalten.

Ich habe auch schon probiert das ganze einem WideString zuzuweisen, allerdings funktionierts dann gar nicht mehr.

mkinzler 19. Aug 2008 15:54

Re: Unicode probleme
 
Welchen Typ hat lStr?

day 19. Aug 2008 16:11

Re: Unicode probleme
 
Ist ein normaler String.

Bernhard Geyer 19. Aug 2008 16:12

Re: Unicode probleme
 
Zitat:

Zitat von day
Ist ein normaler String.

Da mußt du bis Delphi 2009 warten das der Datentyp String Unicodefähig ist.
Bis dorthin mußt du WideString nehmen.
Und lass dich nicht von der IDE verwirren. Erste neuere (D2005/...) IDE Versionen zeigen Widestrings auch korrekt als Widestrings und nicht nur als Strings an.

day 19. Aug 2008 16:20

Re: Unicode probleme
 
Es scheint aber trotzdem auch mit Strings zu funktionieren. Wie gesagt sehe ich die chinesischen symbole auf meiner oberfläche es gibt lediglich ein paar symbole welche das IXMLNode (oder wahrscheinlich eher das TXMLDocument) nicht ausgeben können. Wenn ich den parser selber schreiben würde, dann würde es funktionieren!

Allerdings möchte ich das rad nicht neu erfinden....

Bernhard Geyer 19. Aug 2008 16:22

Re: Unicode probleme
 
Verwendest du VCL.NET oder WinForms?
Dort ist schon String Unicodeenabled.

Und was siehtst du bei den nicht ausgebbaren Zeichen? Hier hat vermutlich der Verwendete Font kein Zeichen vorhanden!

day 19. Aug 2008 16:31

Re: Unicode probleme
 
Also ich verwende die Standard TLabels (winforms). Also ich sehe die chinesischen Symbole und zwischen drin hat es manchmal Fragezeichen (?) anstelle des korrekten symbols. Das mit der Schrift kann ich mir nicht so richtig vorstellen, da ich es ja z.b. im logfile oder debugger richtig sehe. somit müsste die schriftart im windows installiert sein. (habe übrigens die sprachzusätze für asisatische sprachen installiert und regional settings umgestellt)

Bernhard Geyer 19. Aug 2008 16:38

Re: Unicode probleme
 
Zitat:

Zitat von day
Also ich verwende die Standard TLabels (winforms).

Dann ändere bitte deinen ersten Post. Du verwendest NICHT "Delphi (Win32)".

Zitat:

Zitat von day
Also ich sehe die chinesischen Symbole und zwischen drin hat es manchmal Fragezeichen (?).

Fragezeichen sind ein Zeichen für Codepagewandlung. Sollte bei .NET nicht auftreten.

day 19. Aug 2008 16:46

Re: Unicode probleme
 
Ok jetzt habe ich dich falsch verstanden. Ich verwende Delphi (win32) und benutze die Standard TLabels komponente

day 19. Aug 2008 16:47

Re: Unicode probleme
 
das wegen dem codepage dachte ich auch schon. kann es am encoding vom XML file liegen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.
Seite 1 von 6  1 23     Letzte »    

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