Unicode到UTF-8

Rus*_*lan 8 unicode vbscript utf-8 character-encoding

我正在使用vbscript从db2中提取数据并写入文件.写入文件如:

Set objTextFile = objFSO.CreateTextFile(sFilePath, True, True)
Run Code Online (Sandbox Code Playgroud)

以unicode创建文件.但那是xml文件,它使用UTF-8.因此,当我用MS XML Notepad打开xml文件时,它会抛出错误:'十六进制值0x00是无效字符'

所以我用TextPad打开这个文本文件并保存为UTF-8.之后,XML打开没有任何问题.我可以通过vbScript将文件从Unicode转换为UTF-8吗?

ste*_*nja 16

使用Stream对象使用utf-8字符集保存文件可能对您更有效; 这是一个简单的.vbs函数,你可以测试你的数据:

Option Explicit

Sub Save2File (sText, sFile)
    Dim oStream
    Set oStream = CreateObject("ADODB.Stream")
    With oStream
        .Open
        .CharSet = "utf-8"
        .WriteText sText
        .SaveToFile sFile, 2
    End With
    Set oStream = Nothing
End Sub

' Example usage: '
Save2File "The data I want in utf-8", "c:\test.txt"
Run Code Online (Sandbox Code Playgroud)