使用"ADODB.Stream"将ANSI转换为UTF-8,在第一行中错过1-2个字符

mao*_*cai 1 excel vba utf-8

我需要将"ANSI"csv文件转换为"UTF-8"csv文件.下面的代码可以工作,但第一个字符未命中请参见随附的屏幕截图,原始文件:客户输出文件:﨏ustomer

Function Convert(myFileIn, myFileOut)
  Dim stream ,strTextText
  Set stream = CreateObject("ADODB.Stream")

  stream.Open
  stream.Type = 2 'text
  stream.LoadFromFile myFileIn
  stream.Position = 0
  stream.Charset = "gb2312"
  strText = stream.ReadText
  stream.Close

  stream.Open
  stream.Type = 2
  stream.Position = 0
  stream.Charset = "utf-8"
  stream.WriteText strText
  stream.SaveToFile myFileOut, 2
  stream.Close
  Set stream = Nothing

End Function
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Axe*_*ter 6

你必须设置

stream.Type
Run Code Online (Sandbox Code Playgroud)

stream.Charset
Run Code Online (Sandbox Code Playgroud)

在打开流之前.

并且stream.Position默认为0.

问候

阿克塞尔