如何进行编码转换,比如简体到繁体?
时 间:2006-06-02 00:00:00
作 者:UMVsoft整理 ID:8 城市:上海 QQ:2851379730
摘 要:进行编码转换的阐述
正 文:
如何进行编码转换?
我想用vba创建一个utf-8格式的txt文件,然后将普通字符串写入该文件,当在ie下用utf-8编码浏览该文本文件,能够正确显示其中的中英文和标点符号。
方法一:
用ADO 的 STREAM 对象的 CHARSET 属性来进行转换:
Function tran_ado(ByVal strA As String, _
Optional ByVal strInCode As String = "gb2312", _
Optional ByVal strOutCode As String = "big5") As String
'本函数进行编码转换。
'对应的 strInCode 和 strOutCode 在注册表以下位置中能找到
'HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Charset
'请先引用 Microsoft ActiveX Data Objects 2.5 Library
'或者以上版本
Dim Stm As New ADODB.Stream
'默认情况下是将简体中文转换为繁体中文
Stm.Type = adTypeText
Stm.Mode = adModeUnknown
Stm.Open
Stm.Charset = strOutCode
Stm.WriteText strA
Stm.Position = 0
Stm.Type = adTypeText
Stm.Charset = strInCode
tran_ado = Stm.ReadText()
Stm.Close
End Function
注意!由于一些简体字在繁体系统中根本不存在,所以用 stream 转码后还会存在很多问号。
Function runTest()
Dim objFile, stmFile
Dim strText As String
Set objFile = CreateObject("Scripting.FileSystemObject")
Set stmFile = objFile.OpenTextFile("c:\abc.txt", 1, False)
strText = stmFile.ReadAll
strText = tran_ado(strText, "gb2312", "utf-8") '出来的就是 UTF-8 了
stmFile.Close
Set stmFile = objFile.CreateTextFile("c:\abc_tr.txt", True)
stmFile.Write strText
stmFile.Close
End Function
方法二:
将所有的需要转换的文本保存在某个 ACCESS 表的备注字段中,然后下载
OFFICE 简繁体转换加载项 (tcscconv.msi)
http://access911.net/index.asp?u1=f&u2=79FAB61E
用 VBA 编程调用插件转换整个表,然后再从表中读取已经转换编码的文本即可
查两句,这里也许有很多网友看过下述文章:
两个未公开的ACCESS方法的使用技巧
http://access911.net/?kbid;71FAB61E10DCEFF3
想用编程的方式直接转一个已经编写好的 ACCESS 简体软件到 ACCESS 繁体软件。其实也能使用加载项来辅助简化一部分工作。比如:
1、SAVEASTEXT 以后用 FSO READALL 读取全部文本并直接将文本以字符串形式保存为某个临时表的备注字段
2、在 ACCESS 中编程控制菜单,调用插件,转换整个表
3、编程将备注中的文本全部导出为 TXT 文本文件
4、在繁体系统中用 LoadFromText 方法读取整个TXT文本文件即可
但是注意,MDB 格式尽量使用 2000 格式,ACCESS 版本倒没什么很大关系,如果遇上 CRC 校验错误就换台机器再试验一下,不是每次必定出错的。还有,每个控件的控件名尽量使用英文,用中文很可能会出错误。
相关内容你也可以参考:http://bbs.office-cn.net/dispbbs.asp?boardID=151&ID=17841&page=1
方法三:
用字符表逐一比对的方法来进行转换
待续。。。
注意!由于语言转换是语言学而不是计算机学的问题,所以将简、繁体转换系统不可能尽善尽美。举个最简单的例子:简体的“程序”在转换成繁体后应该是“程式”,“软件”应该被转换成“軟体”。这些问题都不在本文的讨论范围。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)