VBA转换文件编码到UTF-8

'Excel中VBA转换文件编码到UTF-8
Private Sub ConvFile(InputFile As String, OutputFile As String)
 
    Dim ReadStream As Object
    Set ReadStream = CreateObject("ADODB.Stream")
    
    Dim FileContent As String
    
    With ReadStream
        .Type = 2               'adTypeText
        '.Charset = "UNICODE"
        .Charset = "GB2312"     ' ANSI
        '.Charset = "UTF-8"
        .Open
        .LoadFromFile InputFile
        FileContent = .ReadText
        .Close
        
    End With
    
    Set ReadStream = Nothing
    
    
    
    Dim WriteStream As Object
    Set WriteStream = CreateObject("ADODB.Stream")
       
    
    With WriteStream
        .Type = 2               'adTypeText
        .Charset = "UTF-8"
        .Open
        .WriteText FileContent
        .SaveToFile OutputFile, 2  'adSaveCreateOverWrite
        
        .Flush
        .Close
        
    End With
    
    Set WriteStream = Nothing
 
    
End Sub


'调用:
 Dim fileName As String
 fileName = ActiveWorkbook.Path & "\" & "test" & ".xml"
Call ConvFile(fileName, fileName)


版权声明:本文为sanchuanhi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。