编码转换用 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
谢谢你的回答,不过文件名呢?可否再完整些,比如在c:\下建一个文件名为"sample"的txt文件,然后,将字符串str="Today is 国庆节!"这个字符串写入该文件。另外如果是多个字符串必须是逐行写入,不能写在一行。还有一点就是使用ado的对象似乎要安装ado的包的吧,这对于我的客户来说,怎么可能为了实现一个编码转换让他们都去装这个包呢。
读取 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 就可以了
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 就可以了
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
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 就可以了
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 就可以了
如何进行编码转换?
http://access911.net/?kbid;72FAB11E17DCECF3
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
《发布》MDAC是什么?在哪里下载?包含什么?
http://access911.net/index.asp?u1=a&u2=72FABF1E14DC
关于此主题请参考:
关于 MDAC 2.X包含的文件《ADO/DAO》
http://access911.net/index.asp?u1=a&u2=79FAB71E1ADC