Unicode zu UTF-8

8

Ich verwende VBScript, um Daten aus db2 zu extrahieren und in Datei zu schreiben.  In Datei schreiben wie:

%Vor%

das erstellt Datei in Unicode. Aber das ist XML-Datei und es verwendet UTF-8. Wenn ich also eine XML-Datei mit MS XML Notepad öffne, wird ein Fehler ausgegeben:  'hexadezimaler Wert 0x00 ist ein ungültiges Zeichen'

Also öffne ich diese Textdatei mit TextPad und speichere in UTF-8. Danach öffnet sich XML ohne Probleme. Kann ich Datei von Unicode nach UTF-8 durch vbScript konvertieren?

    
Ruslan 08.11.2010, 16:26
quelle

2 Antworten

16

Die Verwendung des Stream-Objekts zum Speichern Ihrer Datei mit dem Zeichensatz utf-8 könnte für Sie besser funktionieren. Hier ist eine einfache .vbs-Funktion, die Sie auf Ihren Daten testen könnten:

%Vor%     
stealthyninja 08.11.2010, 18:58
quelle
0

Nun, in einigen Fällen müssen wir dies in WSH in einer Maschine ohne ADO tun. Denken Sie in diesem Fall daran, dass WSH keine Datei im UTF-8-Format erstellt (CreateTextFile-Methode funktioniert nicht mit UTF-8), aber es ist durchaus möglich, eine UTF-8-Datei zu bearbeiten (anhängende Daten). Als ich dies dachte, fand ich eine nichtorthodoxe Lösung. Folge diesen Schritten:

1) Öffnen Sie einen leeren Notizblock, klicken Sie auf DATEI & gt; SAVE AS, geben Sie einen Namen für die Datei ein (wie zB UTF8FileFormat.txt), ändern Sie das Feld "Encoding" in UTF-8 und klicken Sie auf [Speichern]. Hinterlassen Sie den Notizblock.

2) In Ihrer WSH verwenden Sie die Datei UTF8FileFormat.txt, um Ihre UTF8-Textdatei zu erstellen. Verwenden Sie dazu nach der FileSystemObject-Deklaration die CopyFile-Methode, um die Datei UTF8FileFormat.txt in eine neue Datei zu kopieren (denken Sie daran, die Option Überschreiben zu verwenden), und öffnen Sie anschließend mit der OpenTextFile-Methode Ihre neue Datei mit den Optionen ForAppending und NoCreate. Danach können Sie normal in diese Datei schreiben (wie in CreateTextFile-Methode). Ihre neue Datei wird im UTF-8-Format vorliegen. Unten folgt ein Beispiel:

%Vor%     
Adilson Furlani 18.11.2017 10:22
quelle