如何进行编码转换,比如简体到繁体?-张志
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 综合其它


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

发表时间:2006/6/2 评论(0) 浏览(12431)  评论 | 加入收藏 | 复制
   
摘 要:进行编码转换的阐述
正 文:

 如何进行编码转换?
我想用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群(群号:198465573)
 
 相关文章
在简体系统中运行繁体语言系统开发的access程序  【小不点  2009/4/13】
2012圣诞快乐:Access2007\2010举手之劳--数据简...  【麥田  2012/12/25】
全汉字转换拼音码首字母(带:完整汉字拼音(简繁体)、全角字母数字转...  【litao  2013/9/7】
快速开发平台--繁体版显示树控件菜单为乱码的解决方法  【红尘如烟  2014/4/1】
快速开发平台(繁体版)--局域网共享登录错误:运作必须使用更新查询...  【麥田  2014/6/13】
快速开发平台(繁体版)--登录繁体版平台出现#5LoadHeadI...  【麥田  2014/6/16】
Access繁体版交流QQ群,群号:119626377 欢迎使用a...  【麥田  2014/9/1】
常见问答
技术分类
相关资源
文章搜索
关于作者

张志

文章分类

文章存档

友情链接