VB6/VBScript change file encoding to ansi

前端 未结 4 881
囚心锁ツ
囚心锁ツ 2020-11-30 12:45

I am looking for a way to convert a textfile with UTF8 encoding to ANSI encoding.

How can i go around and achieve this in Visual Basic (VB6) and or vbscript?

4条回答
  •  天命终不由人
    2020-11-30 13:22

    @Bob77's answer did not work for me, so I converted @Ciove's answer to a simple sub routine and it works fine.

    ' Usage: 
    ' EncodeFile strInFile, "UTF-8", strOutFile, "Windows-1254", 2
    Sub EncodeFile(strInputFile, strInputCharset, strOutputFile, strOutputCharset, intOverwriteMode)
    
        '5th parameter may take the following values:
        'Const adSaveCreateOverWrite = 2
        'Const adSaveCreateNotExist = 1
    
        Const adReadLine = -2
        Const adTypeBinary = 1
        Const adTypeText = 2
        Const adWriteLine = 1
    
        Set objInputStream = CreateObject("ADODB.Stream")
        Set objOutputStream = CreateObject("ADODB.Stream")
    
        With objInputStream
          .Open
          .Type = adTypeBinary
          .LoadFromFile strInputFile
          .Type = adTypeText
          .Charset = strInputCharset
          objOutputStream.Open
          objOutputStream.Charset = strOutputCharset
          Do While .EOS <> True
             strText = .ReadText(adReadLine)
             objOutputStream.WriteText strText, adWriteLine
          Loop
          .Close
        End With
        objOutputStream.SaveToFile strOutputFile, intOverwriteMode
        objOutputStream.Close
    End Sub
    

提交回复
热议问题