Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 综合其它

如何进行编码转换,比如简体到繁体?

时 间: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源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助