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?
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%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%Tags und Links character-encoding utf-8 unicode vbscript