Koreanische Zeichen

11/08/2009 - 14:55 von Jörg Schneider | Report spam
Moin Zusammen!

Also ich hab hier ne Fox Anwendung die ich für Koreanische Zeichen vorbereitet habe.
FontName = "Arial Unicode MS"
FontCharSet = 129

Prima!

Jetzt habe ich eine Exceldatei mit Beispieladressen zum Importieren bekommen.
per Automation un mit Hilfe von comprop(oXLS, "UTF8",1) kann ich die Unicode Daten
aus den einzelnen Zellen lesen.
Mit strconv(loSheet.range("E5").value,10,129,2) wandle ich die Zeichen dann um.

ABER: AAHHHRRRGG im FoxPro sehe ich andere Zeichen als im Excel?

Hilfe. Wo liegt der Fehler? Seh grad den Wald vor lauter Bàumen nicht mehr.

Hat jemand einen Tip?


Danke für Eure Hilfe schon mal im voraus
Jörg Schneider
 

Lesen sie die antworten

#1 Olaf Doschke
11/08/2009 - 15:51 | Warnen spam
Mit dem COMPROP Setting erhàlst Du UTF-8,
Dein strrconv(...,10) konvertiert nach UTF-8,
was Du aber schon hast, durch diese doppelte
konvertierung kommt Murks raus, richtig.

per Automation un mit Hilfe von comprop(oXLS, "UTF8",1) kann ich die
Unicode Daten
aus den einzelnen Zellen lesen.


Nicht Unicode, UTF-8. Mit der COMPROP-Einstellung verhinderst Du, daß die
UTF-8 Strings, die von Excel dann kommen in ANSI gewandelt werden. Die
Beschreibung von cProperty="UTF8" redeet da fàlschlicherweise von UNICODE,
aber es heißt "UTF8",
weil Du dann eben UTF8 bekommst.

Wenn Du statt mit COMPROP() mit SYS(3101,65001) arbeitest, kriegst Du auf
jeden Fall
UTF-8 Strings von COM-Servern wie Excel.

Mit strconv(loSheet.range("E5").value,10,129,2) wandle ich die Zeichen
dann um.


Falsch, Du hast UTF-8 und konvertierst mit strconv(string,10...) dann
nochmal nach UTF-8, wobei der String als Unicode interpretiert wird.
Letztlich hast Du dann Murks durch zweimalkonvertierung, in jedem Fall am
anderen Ende aber kein ANSI
einer bestimmten Codepage, sondern eben UTF-8, in dem Fall noch falsches
UTF-8.

Du willst UTF-8 in DBCS wandeln, also brauchst Du 11 als nConversionSetting
Parameter.
StrConv(loSheet.range("E5").value,11,129,2)

Tschüß, Olaf.

Ähnliche fragen