vba解决utf-8编码问题

Michael_javavb 2005-10-02 03:33:15
我想用vba创建一个utf-8格式的txt文件,然后将普通字符串写入该文件,当在ie下用utf-8编码浏览该文本文件,能够正确显示其中的中英文和标点符号。给出完整解决方法,测试成功,全分送上。
...全文
3300 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
changechange 2005-10-03
  • 打赏
  • 举报
回复
请参考以下文章及其相关文章:

如何进行编码转换?
http://access911.net/?kbid;72FAB11E17DCECF3

changechange 2005-10-03
  • 打赏
  • 举报
回复
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 就可以了
changechange 2005-10-03
  • 打赏
  • 举报
回复
读取 TXT 文件用 FSO

Dim 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 就可以了
Michael_javavb 2005-10-03
  • 打赏
  • 举报
回复
我知道怎么做了,马上给分
changechange 2005-10-03
  • 打赏
  • 举报
回复
关于此主题请参考:
《发布》MDAC是什么?在哪里下载?包含什么?
http://access911.net/index.asp?u1=a&u2=72FABF1E14DC
关于此主题请参考:
关于 MDAC 2.X包含的文件《ADO/DAO》
http://access911.net/index.asp?u1=a&u2=79FAB71E1ADC
changechange 2005-10-03
  • 打赏
  • 举报
回复
你所需要的所有资料在

http://access911.net

上全部能查询到,请自己查询吧,我都写过文章专门论述了,请学会举一反三
changechange 2005-10-03
  • 打赏
  • 举报
回复
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

Michael_javavb 2005-10-03
  • 打赏
  • 举报
回复
谢谢你的回答,不过文件名呢?可否再完整些,比如在c:\下建一个文件名为"sample"的txt文件,然后,将字符串str="Today is 国庆节!"这个字符串写入该文件。另外如果是多个字符串必须是逐行写入,不能写在一行。还有一点就是使用ado的对象似乎要安装ado的包的吧,这对于我的客户来说,怎么可能为了实现一个编码转换让他们都去装这个包呢。
Michael_javavb 2005-10-03
  • 打赏
  • 举报
回复
真的十分感谢你的回答,但是问题有两个,一个是怎样在vba中引用ado呢,二即便可以引用,我的很多用户都是win2k系统,你应该知道,大多的公司用的都是win2k,有没有ado可以引用呢 ?
你有没有msn或者qq我们讨论讨论,分我打算都给你,完全解决这个问题,在给五十
我的msn:wangxiong369@hotmail.com
qq:119241030
最好用msn
changechange 2005-10-03
  • 打赏
  • 举报
回复
编码转换用 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
'***************************************************************** '* 软件名称:GB/BIG5/UTF-8 文件编码批量转换程序 '* '* 版权信息:此软件由 阿勇(fxy_2002@163.com) 开发,请保留此信息!! '* 免费软件,欢迎使用!请勿用于直接出售或其它商业用途。 '* '* 作者主页:pc-soft.cn e-mail:fxy_2002@163.com '* '* 程序功能:将 GB、BIG5、UTF-8 文件相互转换,方便的批量处理能力, '* 主要用于网站文件编码方式的整体转换上。 '* '* 特别提醒:程序不保证文件绝对安全,使用前请备份! '* '* 开发环境:Visual Basic6.0(SP6) 简体中文、Windows XP(SP2) 简体中文 '* 在其它环境下未做测试,因此程序不一定能正常运行。 '* '* 已知缺陷:对于 BIG5 编码的文件,若执行 UTF-8 转换,保存到 UTF-8 文 '* 件中的是伪编码,实际上是 GBK 繁体字的 UTF-8 编码,而非 BIG5。 '* 这么做的原因在于在简体 Windows 系统中,我还没有找到好的办法对 '* BIG5 进行 UTF-8 编码,只能对 GBK 进行 UTF-8 转换,使之看起来 '* 象一个繁体字文件。 '* '* 最后修改:2006/06/15 '* '***************************************************************** 使用说明: 软件使用VB6开发,如果在某些电脑上无法使用,多半是缺少运行库的原因。 碰到这种情况,请在互网上下载 MSVBVM60.DLL 文件到软件所在目录即可。这个 文件使用很普遍,许多地方可以下载。如果找不到,微软的网站一定存在! ---------------------------------------------------------------------- 开发背景: 某天,应老板的要求,需要将一个 GB 编码的 WEB 应用改变成 UTF-8 编码, 整个 WEB 程序涉及 300 多个 ASP 和 HTML 文件....于是乎,我上网搜索能将 GB 文件批量转换成 UTF-8 编码的软件。找来找去,多是一些仅能在网页中实时 编码的 VBS、JS 或 PHP 脚本,而没有进行大量文件编码转换的工具。 因为时间紧迫,后来只好使用最原始的办法,用 Windows 的记事本打开一个 个 ASP 文件,使用“另存为...”的方式变成 UTF-8 编码。真是郁闷....最后, 有了这个软件! --------------------------------------------------------------------- 版本历史: 1.3 -- 当前版本,批量查找时可以只查找包含指定文本内容的文件 1.21 -- 生成 UTF-8 时可选是否带BOM(标示自身编码方式和字节 序的特殊字串,BYTE ORDER MARK) 1.2 -- 添加在转换过程中进行文件内容添加、替换功能;该功能使本软件也 能作为一个文本替换软件使用。 1.1 -- 未公开发布,完成 GB、BIG、UTF-8 三种编码相互转换。 1.0 -- 未公开发布(自用),完成 GB 与 UTF-8 编码相互转换功能。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧