Delphi-PRAXiS
Seite 2 von 6     12 34     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)

Bernhard Geyer 19. Aug 2008 16:51

Re: Unicode probleme
 
Zitat:

Zitat von day
Ok jetzt habe ich dich falsch verstanden. Ich verwende Delphi (win32) und benutze die Standard TLabels komponente

TLabels ist unter Win32 bis Delphi2009 nicht Unicode-Fähig. Hier helfen nur die Kompos von TNTWare (TMS) oder Elpack (LMD).

day 19. Aug 2008 16:55

Re: Unicode probleme
 
Ok vielleicht ist unicode der falsche titel. Ich versuche lediglich chinesische symbole darzustellen und so wie es aussieht hat der xml parser probleme alle symbole richtig auszugeben. Die TLabel komponente ist nicht das Problem, da die symbole ja angezeigt werden.

[EDIT]
Ich habe als Test alle chinesischen symbole im XML-File direkt dem TLabel (Caption) zugewiesen. Es wurden alle symbole im Label richtig angezeigt (auch die symbole die vorher nur ein Fragezeichen waren).

Bernhard Geyer 19. Aug 2008 16:59

Re: Unicode probleme
 
Du kannst mit TLabel auf einem deutschen System keine vollständige Chinesiche Textdarstellung erreichen. Die verwendung von Charsets/Codepages liefert dir nur eine m.E. Krückenlösung da nur ein Subset von zeichen verwendet werden kann.

day 19. Aug 2008 17:05

Re: Unicode probleme
 
Ja du kannst aber im windows unter regional settings die asiatischen sprachen zusätzlich installieren und anschliessend die code page und die "sprachversion der programme" auf chinesisch umstellen.

Anschliessend siehst du z.b. google.cn in chinesisch. Ich denke daher schon das alle symbole angezeigt werden können. Wie auch gesagt sehe ich im xml file alle symbole korrekt. wenn irgend ein symbol nicht erkannt werden würde, dann würde ich es da schon nicht als symbol sehen.

Bernhard Geyer 19. Aug 2008 18:36

Re: Unicode probleme
 
Kannst du mal ein Testprojekt + Test-XML zusammenstellen und hier posten?

day 20. Aug 2008 07:52

Re: Unicode probleme
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen,

Beiliegend habe ich einen kleinen Test gemacht welcher aus einem xml file einen wert ausliest. Ein symbol wird im label nur als ? dargestellt das andere korrekt. Ich habe noch ein printscreen beigelegt, damit man sieht wie die symbole aussehen sollten.

Beim label habe ich als Charset das DEFAULT_CHARSET verwendet. Wenn ich ein anderes verwende (z.B. CHINESEBIG5_CHARSET), stimmen die symbole nicht mehr mit dem XML file überein.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  lNode          : IXMLNode;
  lXMLStream     : String;
begin

lXMLStream := '<?xml version="1.0" encoding="ISO-8859-1"?> '
              + ' <el name="" value="&#35352;&#20303;" /> ';

 XMLDocument.LoadFromStream(TStringStream.Create(lXMLStream));
lNode := XMLDocument.ChildNodes.FindNode('el');

label1.Caption := lNode.Attributes['value'];  //caption ist ?ס
label2.Caption := '&#35352;&#20303;';
end;
Komischerweise funktioniert es mit dem ISO-8859-1 (ist westeuropäisch??!!) encoding am besten. Mit dem UTF-8 encoding geht es nicht.

vielen dank für deine Mühe

gruss

Bernhard Geyer 20. Aug 2008 08:02

Re: Unicode probleme
 
Dein Quellcode im Forum ist "verhunzt".

und in deinem JPEG weißt du chinesische Zeichen einem (Ansi-)String zu. Diese werden bei Win32 bis D2007 noch nach der ISO1252-Codepage gecastet. Außerdem ist dein XML (falls du die Chinesischen Zeichen unterbekommst) fehlerhaft Codiert. Diese mußt du codieren (AFAIK &<Hexwert>;). Bei UTF8 als encoding-Angabe mußt du natürlich auch die Daten UTF8-Codiert in deinem XML-string ablegen!

day 20. Aug 2008 08:19

Re: Unicode probleme
 
Was meinst du mit verhunzt? Den value siehst du nur wenn dein Betriebssytem auf asiatisch eingestellt hast. (ist dasselbe wenn du google.cn aufrufst). Das mit dem umcodieren ist so eine sache. Die werte sind so abgelegt. Das lässt sich nicht so einfach abändern. oder hast du eine idee?
Wahrscheinlich geht es schneller, wenn ich das xml-file selber parse und die werte auslese.

Was ich aber nicht verstehe ist, warum kann der parser nur ein teil der symbole parsen?

Bernhard Geyer 20. Aug 2008 08:32

Re: Unicode probleme
 
Zitat:

Zitat von day
Was meinst du mit verhunzt?

Jetzt passt es. Da hat wohl mein Firefox oder die DP versagt.

Zitat:

Zitat von day
Den value siehst du nur wenn dein Betriebssytem auf asiatisch eingestellt hast. (ist dasselbe wenn du google.cn aufrufst).


Zitat:

Zitat von day
Das mit dem umcodieren ist so eine sache. Die werte sind so abgelegt. Das lässt sich nicht so einfach abändern. oder hast du eine idee?

Gib doch mal eine Beispiel-XML rüber. Wenn ich deinen String als XML-Datei speichere wird mir jeder XML-Parser diese mit Exceptions um die Ohren schmeißen. Und speicher doch mal lXMLStream (was ja kein Stream ist da hier ja schon dein schönes Chinesisches Zeichen u.U. zerstört wurde) in einer Datei, benenne diese nach XML um und lass sie im IE oder Firefox anzeigen.

day 20. Aug 2008 08:57

Re: Unicode probleme
 
Hallo,
Ja du hast recht, wenn ich mein xml string in ein xml file kopiere und dann im internet explorer anzeigen lasse, dann sehe ich die symbole nicht mehr. wenn ich allerdings das xml file im wordpad aufmache dann funktioniert es.

Ich vermute ich weiss auch woran das liegt. Unter Regional settings im Reiter "Erweitert" gibt es den Bereich "Sprache für Programme, die Unicode nicht unterstüzen". Da habe ich die Sprachversion auf chinesisch umgestellt. Notepad und Wordpad sind wahrscheinlich genau solche programme und darum interpretieren sie den wert anders als ein internet explorer der ja ein programm ist welches unicode unterstützt.

somit bleibt mir wahrscheinlich nichts anderes übrig als einen eigenen parser zu schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.
Seite 2 von 6     12 34     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