Re: Unicode probleme
Zitat:
|
Re: Unicode probleme
Zitat:
|
Re: Unicode probleme
Zitat:
|
Re: Unicode probleme
Ich tippe eher das auf dem WEg in die DB hier etwas zerschossen wird. Vermutlich wird im C-Programm auch varchars statt nvarchars erwartet und das kann je nach DB und Codepages des Clients/Connection/Servers auf unterschiedlichste Art und Weise die Daten verändern. Wenn schon Unicode dann sollte auch die DLL soweit erweitert werden das sie mit Widestrings arbeitet! Alles andere ist gepfusche!
Der XML-Parser wird zu 99,9% alles richtig machen - wenn er fehlerfreie Daten bekommt! Und das bezweifle ich! |
Re: Unicode probleme
Ja ich gebe dir recht, dass es sauberer wäre wenn man alles auf widestring umstellen würde. Aber dazu ist der aufwand viel zugross! Denn wie gesagt, wenn ich den xml-parser rausnehme und das File selber parse funktioniert alles. Nur muss ich halt das file selber auslesen. Ist aber definitiv weniger aufwändig.
|
Re: Unicode probleme
Zitat:
Und ich hoffe für die anderen hier das sie niemals defekte XML von euch verarbeiten müssen. |
Re: Unicode probleme
Zitat:
|
Re: Unicode probleme
Zitat:
|
Re: Unicode probleme
jetzt habe ich noch eine frage. und zwar habe ich das gleiche symbol einmal als ansi und einmal als unicode abgespeichert. Ich kann beide files im notepad/wordpad aufmachen und das chinesische symbol wird mir richtig angezeigt.
Im ANSI format lautet der Hex wert: D3 D0 Im unicode format: FF FE 09 67 Das symbol im unicode format (09 67) habe ich in einer unicode tabelle gefunden (und oh wunder es war sogar korrekt :-) ). In welcher codepage tabelle finde ich aber den ANSI wert? |
Re: Unicode probleme
Ab Win98 in Codepage 936
|
Re: Unicode probleme
Danke, jetzt habe ich das symbol auch in dieser codepage gefunden. Wie kann ich dem Betriebssystem sagen, dass er die codepage 950 nehmen soll?
|
Re: Unicode probleme
Ich habe zwar schon einen anderen Thread dafür benutzt,
Delphi für Win32 UDP-Probleme bei Delphi2009 und Windows XP Embedded jedoch scheint mir dieser Beitrag geeigneter für mein Problem. Seit meiner Umstellung von Delphi 2007 auf Delphi 2009 habe ich das Problem dass die UDP-Kommunikation in meinem Programm nicht mehr korrekt funktioniert. D.h. auf meinem lokalen Windows XP Rechner (SP3) funktioniert es einwandfrei. Ich verwende das TIdUDPClient-Objetk für meine Kommunikation. Wie schon gesagt, vor der Umstellung auf Delphi 2009 funktionierte die Kommunikation mittels Send und ReceiveString überall einwandfrei. Nach Umstellung funktionierte es auf einem Windows XP Embedded System nicht mehr. Nach langem Stöbern in diversen Foren und im Internet stellte ich die Kommunikation dahingehend um, dass ich nun die Funktionen SendBuffer und ReceiveBuffer verwende. Das hat zur Folge, dass das Senden nun auf dem Embedded System auch funktioniert, das Empfangen jedoch noch nicht. Hier erhalte ich die Ausnahme: EEncodingError - "ungültige Codepage" Ich glaube, dass das Ganze etwas mit der Unicode-Geschichte zu tun hat. Kann es sein, dass mein Server-System die Antwort in einer "falschen" Form schickt? Was könnte es sonst sein? Hier ein Auszug aus meinem Source-Code: ...
Delphi-Quellcode:
Anmerkung: verwendete Codepage: 850
msg_temp,aw:WideString;
Buffer : TIdBytes; begin for trycounts:= 1 to 5 do begin try UDPC.SendBuffer(UDPC.Host,UDPC.Port,BytesOf(msg_temp)); SetLength(Buffer, UDPC.BufferSize); UDPC.ReceiveBuffer(Buffer); aw := BytesToString(Buffer); Das Serversystem, welches die Antworten liefert ist eine in C programmierte Anwendung, die unter Windows Embedded läuft. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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