我想用vba创建一个utf-8格式的txt文件,然后将普通字符串写入该文件,当在ie下用utf-8编码浏览该文本文件,能够正确显示其中的中英文和标点符号。给出完整解决方法,测试成功,全分送上。

解决方案 »

  1.   

    编码转换用 ADO.STREAM 对象呀Function tran_ado(ByVal strA As String) As String
        Dim Stm As New ADODB.Stream
        Stm.TYPE = adTypeText
        Stm.MODE = adModeUnknown
        Stm.Open
        Stm.Charset = "utf-8"
        Stm.WriteText strA
        Stm.Position = 0
        Stm.TYPE = adTypeText
        Stm.Charset = "gb2312"
        tran_ado = Stm.ReadText()
        Stm.Close
    End Function
      

  2.   

    谢谢你的回答,不过文件名呢?可否再完整些,比如在c:\下建一个文件名为"sample"的txt文件,然后,将字符串str="Today is 国庆节!"这个字符串写入该文件。另外如果是多个字符串必须是逐行写入,不能写在一行。还有一点就是使用ado的对象似乎要安装ado的包的吧,这对于我的客户来说,怎么可能为了实现一个编码转换让他们都去装这个包呢。
      

  3.   

    读取  TXT 文件用 FSODim objFile, stmFile
    Dim strText As String
    Set objFile = CreateObject("Scripting.FileSystemObject")
    Set stmFile = objFile.OpenTextFile(FilePath, 1, False)
    strText = stmFile.ReadAll
    stmFile.Close
    tran_ado strText '出来的就是 UTF-8 了这个时候 strText 中包含了所有的文本,包括多行的
    stream 是 ADO 的一个对象,必须要ADO 2.5版以上,ADO 包含在 MDAC 中,而 WINDOWS XP 以上或者 98 SP2 以上都内置MDAC 2.5以上的,你只要引用一下 ADO 就可以了
      

  4.   

    Dim objFile, stmFile
    Dim strText As String
    Set objFile = CreateObject("Scripting.FileSystemObject")
    Set stmFile = objFile.OpenTextFile("c:\abc.txt", 1, False)
    strText = stmFile.ReadAll
    stmFile.Close
    tran_ado strText '出来的就是 UTF-8 了这个时候 strText 中包含了所有的文本,包括多行的
    stream 是 ADO 的一个对象,必须要ADO 2.5版以上,ADO 包含在 MDAC 中,而 WINDOWS XP 以上或者 98 SP2 以上都内置MDAC 2.5以上的,你只要引用一下 ADO 就可以了
      

  5.   

    请参考以下文章及其相关文章: 
     
        如何进行编码转换? 
        http://access911.net/?kbid;72FAB11E17DCECF3 
     
      

  6.   

    WIN 2K 内置支持 MDAC请参考以下文章及其相关文章: 
     
        VBE界面下菜单工具引用(References)和用CreateObject来创建对象的区别 
        http://access911.net/?kbid;72FAB11E11DCE8F3 
     
    就是按 Alt+F11 到 VBE 界面,菜单->工具->引用 里面去引用对应的类库,然后可以在代码中用
    http://access911.net/term.asp?termstring=ado
    1 ADO (ActiveX Data Objects)泛指Microsoft ActiveX Data Objects Library,一种数据库访问接口2 ADO ADO 对象,其“引用”名为:Microsoft ActiveX Data Objects 2.? Library 
      

  7.   

    你所需要的所有资料在http://access911.net 上全部能查询到,请自己查询吧,我都写过文章专门论述了,请学会举一反三
      

  8.   

    关于此主题请参考:
        《发布》MDAC是什么?在哪里下载?包含什么?
        http://access911.net/index.asp?u1=a&u2=72FABF1E14DC
    关于此主题请参考:
        关于 MDAC 2.X包含的文件《ADO/DAO》
        http://access911.net/index.asp?u1=a&u2=79FAB71E1ADC