Hi,
ich habe eine UTF-8 XML-Datei von einem anderen Programm und würde diese gerne mit ASXML benutzen. Leider interpretiert ASXML z.B. "ß" als irgendwelche unsinnigen Zeichen. Ich habe einfach mal blind versucht den Wert, den ich aus der XML bekomme mit ConvToAnsiCP, ConvToOemCP() und auch mit Str2UTF8 aus einer geladenen Bibliothek hier aus dem Forum zu übersetzen, hat leider alles keine Wirkung gezeigt. Wenn ich die XML-Datei mit notepad++ anzeigen lasse, stehen die Sonderzeichen so drin wie sie sein sollen: "Wienerstraße " etc..
Muss ich vielleicht bei ASXML irgendeine Einstellung vornehmen um zu sagen "interpretiere die XML mit dem UTF-8 Zeichensatz" ?
ASXML mit UTF-8 benutzen
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: ASXML mit UTF-8 benutzen
du musst die UTF8 Datei (also die gesamte XML) zuerst in ANSI umwandeln (und hoffen dass der Zeichensatz ausreicht) ...
Ich nutze dazu die Funktion von Pablo aus der OT4XB
Natürlich solltest du dann auch die Zeichensatzinfo oben gegen Ansi austauschen ...
und falls die XML gespeichert werden soll, NICHT MEMOWRIT() nutzen !
In den XbToolsIII gibt es eine Funktion zum Schreiben von Strings in Files, ich nutze meine eigene hier in der entgegengesetzten Richtung:
Ich nutze dazu die Funktion von Pablo aus der OT4XB
Code: Alles auswählen
cUtf8ToAnsi(cUtf8) -> cAnsi
cUtf8ToOem(cUtf8) -> cOem
cAnsiToUtf8( cAnsi ) -> cUtf8
cOemToUtf8(cOem) -> cutf8
und falls die XML gespeichert werden soll, NICHT MEMOWRIT() nutzen !
In den XbToolsIII gibt es eine Funktion zum Schreiben von Strings in Files, ich nutze meine eigene hier in der entgegengesetzten Richtung:
Code: Alles auswählen
// umsetzen UTF8
IF IsAnsi()
cXML := cAnsiToUtf8(cXML)
ELSE
cXML := cOemToUtf8(cXML)
ENDIF
Str2Disk(cZiel,cXML)
Gruß
Hubert
Hubert
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Re: ASXML mit UTF-8 benutzen
Hallo Hubert,
danke, cUtf8ToAnsi() war die Lösung, habe es schon mal verwendet aber nicht das gewünschte Ergebnis erhalten, jetzt klappt es. Für das Speichern verwendet ich normal auch einen eigene Funktion so wie Deine.
Grüße
Rudolf
danke, cUtf8ToAnsi() war die Lösung, habe es schon mal verwendet aber nicht das gewünschte Ergebnis erhalten, jetzt klappt es. Für das Speichern verwendet ich normal auch einen eigene Funktion so wie Deine.
Grüße
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net