关于VB保存UTF-8格式文本文件的有关问题

关于VB保存UTF-8格式文本文件的问题。
源代码如下:
Private Sub Command2_Click()
Open "D:\ansoft\yang\script1.vbs" For Input As #1
 Do While Not EOF(1)
  Line Input #1, strtxt
  If InStr(strtxt, "磁芯外半径") Then
   strtxt = Replace(strtxt, "磁芯外半径", Text1.Text)
  End If
  s = s & strtxt & vbCrLf
 Loop
Close #1
Open "D:\ansoft\yang\script1.vbs" For Output As #1
 Print #1, s;
Close #1
End Sub

这个代码写入的数据最后保存的都是Unicode格式,对于中文字显示的都是乱码,需要添加什么代码,能够让中文字正确显示吗?希望各位高手们能帮我想想办法,给出能够解决的程序代码。
------解决思路----------------------
读写文件的方式有很多种.....................

给你一个参考书的例子,你自己琢磨一下修改成自己的即可。

Function ReadBinaryText(ByVal bFile As String) As String
    ''读文本文件
    On Error GoTo 100
    Dim iNum As Integer, v As Variant
    iNum = FreeFile()
    Open bFile For Binary As #iNum
    Get #iNum, 1, v
    Close #iNum
    ReadBinaryText = v
    Exit Function
100:
    MsgBox Err.Description
End Function
Sub SaveTextFile(ByVal bFile As String, ByVal bValue As String)
    ''写文本文件
    On Error GoTo 100
    Dim iNum As Integer, v As Variant, Byt() As Byte
    iNum = FreeFile()
    Open bFile For Binary As #iNum
    Byt = bValue
    v = Byt
    Put #iNum, 1, v
    Close #iNum
    Exit Sub
100:
    MsgBox Err.Description
End Sub


写文件时,如果新内容比原来的短,原来文件多余的部分并不会被删除,虽然不影响读取,但是会影响文件的体积,
所以,如果介意这点,写文件之前如果存在则删除....... 
------解决思路----------------------
有2个api函数可以在utf8和byte之间进行转换:widechartomultibyte / multibytetowidechar
如果需要,将上面函数和过程稍加修改就可以满足你的要求.....
------解决思路----------------------
****的搜索就是渣,以前的帖子找不着了,再贴一遍方法。
'工程要引用  Microsoft ActiveX Data Objects 2.5,下面两个通用方法建议放在模块中。'
Sub SaveUTF8(ByVal Text As String, ByVal FileName As String)
    Dim oStream             As ADODB.Stream

    Set oStream = New ADODB.Stream
    oStream.Open
    oStream.Charset = "UTF-8"
    oStream.Type = adTypeText
    oStream.WriteText Text
    oStream.SaveToFile FileName, adSaveCreateOverWrite
    oStream.Close
End Sub

Function LoadUTF8(ByVal FileName As String) As String
    Dim oStream     As ADODB.Stream
    
    Set oStream = New ADODB.Stream
    oStream.Open
    oStream.Charset = "UTF-8"
    oStream.LoadFromFile FileName
    
    LoadUTF8 = oStream.ReadText()
    
    oStream.Close
End Function

'调用很简单'
Private Sub Command2_Click()
    Dim s As String
    
    s = LoadUTF8("D:\ansoft\yang\script1.vbs")
    s = Replace(s, "磁芯外半径", Text1.Text)
    SaveUTF8 s, "D:\ansoft\yang\script1.vbs"
End Sub

------解决思路----------------------
引用:
我有个地方说错了,VB它保存的文本文件都是ANSI格式的,我要修改的VBS文件是UTF-8格式的,文件里头有中文字符,就是想要在修改后,保存的原VBS文件不要出现乱码,仍然是UTF-8文件。太愁了,在网上找方法找了好几天,有可以读取的相关例子,但是修改老是结合不起来。有没有高手再指点下?最好能帮我修改一下。

来问问题,却不把问题说清楚,你让别人怎么去解决???
本来是很简单的问题,偏偏搞得非常诡异!

5F赵老虎给出了一个解决方案。另外一个方法就是用API 进行编码转换:
MultiByteToWideChar( ) 和WideCharToMultiByte( )
如果文件不是非常大(上百MB),可以用Binary模式一次性读入内存进行处理。
太大的文件,就最好分段读取来处理。
不过以现在多数的电脑配置,基本上1G以内的文件一次性全部读取也不算什么。