Re: Unicode probleme
Zitat:
|
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). |
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.
|
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. |
Re: Unicode probleme
Kannst du mal ein Testprojekt + Test-XML zusammenstellen und hier posten?
|
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:
Komischerweise funktioniert es mit dem ISO-8859-1 (ist westeuropäisch??!!) encoding am besten. Mit dem UTF-8 encoding geht es nicht.
procedure TForm1.Button1Click(Sender: TObject);
var lNode : IXMLNode; lXMLStream : String; begin lXMLStream := '<?xml version="1.0" encoding="ISO-8859-1"?> ' + ' <el name="" value="記住" /> '; XMLDocument.LoadFromStream(TStringStream.Create(lXMLStream)); lNode := XMLDocument.ChildNodes.FindNode('el'); label1.Caption := lNode.Attributes['value']; //caption ist ?ס label2.Caption := '記住'; end; vielen dank für deine Mühe gruss |
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! |
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? |
Re: Unicode probleme
Zitat:
Zitat:
Zitat:
|
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. |
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