CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

繁简转换的问题

楼主shawls(VB Fan)(QQ:9181729)2005-10-15 14:50:51 在 VB / 基础类 提问

 
  如何把繁体中文和简体中文进行自由转换?  
   
  注意:不是big2GB或者GB2BIG  
   
  是繁简转换:  
   
  例如:  
   
  “中国”转换为“中國” 问题点数:50、回复次数:19Top

1 楼sunxl(小呆)回复于 2005-10-15 15:00:17 得分 0

Function   GBBIG5(sStr   As   String,   iConver   As   Integer)   As   String  
  On   Error   Resume   Next  
          Dim   STR  
          If   iConver   =   1   Then   'BIG5-->GB  
                  STR   =   StrConv(sStr,   vbFromUnicode,   &H804)  
                  GBBIG5   =   StrConv(STR,   vbUnicode,   &H404)  
          ElseIf   iConver   =   2   Then   'GB-->BIG5  
                  STR   =   StrConv(sStr,   vbFromUnicode,   &H404)  
                  GBBIG5   =   StrConv(STR,   vbUnicode,   &H804)  
          End   If  
   
  End   Function  
   
  Private   Sub   Command1_Click()  
  Text2.Text   =   GBBIG5(Text1.Text,   2)  
  End   Sub  
   
  Private   Sub   Command2_Click()  
  Text1.Text   =   GBBIG5(Text2.Text,   1)  
  End   Sub  
  Top

2 楼sunxl(小呆)回复于 2005-10-15 15:04:34 得分 0

不好意思没看清楚   呵呵Top

3 楼sunxl(小呆)回复于 2005-10-15 15:24:27 得分 3

你自己看看吧   找到了一篇文章   我现在没有时间   等有时间在好好看看  
   
      用途5:  
              繁简转换,中英转换,一般对控件标题、提示文字、默认值等进行文字上繁简转换后并不能真正实现繁简转换,在转换后相应的环境中打开还会出现ACTIVEX控件找不到或者OLE错误,将窗体或其它对象转换为文本文件后再进行繁简转换,然后再转换相应的字符集、字体名称、节的繁简对应名称、CRC校验码等之后,再导回ACCESS相应对象,就可完成整个ACCESS程序的转换,相应的程序效果可参见我做的繁简转换通用程序,记住简体一般是134   繁体是136   英文你打开就知了。我奉劝,如果你想做同样的功能,那你最好就别做了,用我的就得了,免得断我财路,我提成20%给你就得了,等两年后积到100元我再一次汇给你:)  
   
   
  http://www.office-cn.net/Article/Class5/Class21/200312/262.htmlTop

4 楼wumylove1234(毁于随)回复于 2005-10-15 15:27:32 得分 3

哪里会有编码的说明呢?我想制定Unicode标准的组织的网站上应该会有.Top

5 楼sunxl(小呆)回复于 2005-10-15 15:57:05 得分 5

用Word  
   
  Private   Sub   Command3_Click()  
  Text2.Text   =   callWordTCSCTranslate(Text1.Text)  
  End   Sub  
  Private   Sub   Command4_Click()  
  Text2.Text   =   callWordSCTCTranslate(Text1.Text)  
  End   Sub  
   
  Function   callWordTCSCTranslate(Text   As   String)   As   String   '   繁体2简体  
  Dim   Word   As   Object,   retText   As   String  
  On   Error   Resume   Next  
  Set   Word   =   CreateObject("Word.Basic")  
  Word.FileNew  
  Word.Insert   Text  
  Word.EditSelectAll  
  Word.ToolsTCSCTranslate   Direction:=0,   Varients:=0,   TranslateCommon:=0  
  '取返回值  
  retText   =   Word.Selection$()  
  callWordTCSCTranslate   =   Left$(retText,   Len(retText)   -   1)  
  Word.FileClose   2  
  Set   Word   =   Nothing  
  End   Function  
   
  Function   callWordSCTCTranslate(Text   As   String)   As   String   '   简体2繁体  
  Dim   Word   As   Object,   retText   As   String  
  On   Error   Resume   Next  
  Set   Word   =   CreateObject("Word.Basic")  
  Word.FileNew  
  Word.Insert   Text  
  Word.EditSelectAll  
  Word.ToolsSCTCTranslate   Direction:=0,   Varients:=0,   TranslateCommon:=0  
  '取返回值  
  retText   =   Word.Selection$()  
  callWordSCTCTranslate   =   Left$(retText,   Len(retText)   -   1)  
  Word.FileClose   2  
  Set   Word   =   Nothing  
  End   FunctionTop

6 楼shawls(VB Fan)(QQ:9181729)回复于 2005-10-16 19:34:46 得分 0

楼1:那个代码我贴的天南海北到处有了,不用重复了  
   
  楼3:研究中  
   
  楼4:找资料中...  
   
  楼5:这个不现实,我是要把整个东西放到SourceCode   Explorer里面作为一个功能的,不可能带个word把Top

7 楼shawls(VB Fan)(QQ:9181729)回复于 2005-10-16 19:35:28 得分 0

sorry  
   
  我很少看用户名,  
  楼上几个帖子,都是一个人的:)Top

8 楼shawls(VB Fan)(QQ:9181729)回复于 2005-10-16 23:32:19 得分 0

没有人回答么?  
   
  或者说,周末都在休息?!Top

9 楼liujingxiong()回复于 2005-10-18 08:56:34 得分 2

我自己做了一个繁体和简体互转的软件,用的是笨方法,就是用2个字符串做数据库,字符串1里放的是所有可能用到的简体字,字符串2里放的是和字符串1相对应的繁体字,需要替换时只要找到在字符串的位置就可以直接替换了。Top

10 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2005-10-18 09:03:34 得分 0

我只有编码的转换。。。Top

11 楼shawls(VB Fan)(QQ:9181729)回复于 2005-10-18 20:39:20 得分 0

 
  难道我只能带GBK的字库?Top

12 楼wumylove1234(毁于随)回复于 2005-10-21 08:50:42 得分 0

顶!Top

13 楼aohan(aohan)回复于 2005-10-21 20:08:35 得分 2

用.net  
  '转为简体  
  Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click  
                  TextBox2.Text   =   StrConv(TextBox1.Text,   VbStrConv.TraditionalChinese)  
          End   Sub  
  '转为繁体  
          Private   Sub   Button2_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button2.Click  
                  TextBox1.Text   =   StrConv(TextBox2.Text,   VbStrConv.SimplifiedChinese)  
          End   SubTop

14 楼shawls(VB Fan)(QQ:9181729)回复于 2005-10-21 22:21:51 得分 0

兄弟,等于没说啊  
   
  我的是VB6的版本  
   
  不可能为了这个  
   
  我重写整个软件吧Top

15 楼lc_mtt(柠檬把大飞猪裤子一脱...被大飞猪投诉了)回复于 2005-11-03 02:21:43 得分 30

记得给分哟,用API实现的,快速简单  
   
  Option   Explicit  
  Private   Declare   Function   LCMapString   Lib   "kernel32"   Alias   _  
  "LCMapStringA"   (ByVal   Locale   As   Long,   ByVal   dwMapFlags   As   _  
  Long,   ByVal   lpSrcStr   As   String,   ByVal   cchSrc   As   Long,   _  
  ByVal   lpDestStr   As   String,   ByVal   cchDest   As   Long)   As   Long  
  Private   Declare   Function   lstrlen   Lib   "kernel32"   Alias   "lstrlenA"   _  
  (ByVal   lpString   As   String)   As   Long  
   
  Dim   STf   As   String   '繁体字符串  
  Dim   STj   As   String   '简体字符串  
  Dim   STlen   As   Long   '待转换字串长度  
   
  Private   Sub   Command1_Click()   'Gb码简体转繁体  
  STj   =   "中华人民共和国"  
  STlen   =   lstrlen(STj)  
  STf   =   Space(STlen)  
  LCMapString   &H804,   &H4000000,   STj,   STlen,   STf,   STlen  
  Debug.Print   STf  
  End   Sub  
   
  Private   Sub   Command2_Click()   'Gb码繁体转简体  
  STf   =   "中華人民共和國"  
  STlen   =   lstrlen(STf)  
  STj   =   Space(STlen)  
  LCMapString   &H804,   &H2000000,   STf,   STlen,   STj,   STlen  
  Debug.Print   STj  
  End   Sub  
   
  特别提醒:VB   的   StrConv   函数可以将港台繁体与国标繁体互相转换  
  Top

16 楼cqq_chen(我是谁)回复于 2005-11-06 13:07:04 得分 0

请问lc_mtt(柠檬):有在繁体系统下试过吗?例如在繁体win2000中有一个access文件,ACCESS中的数据是简体的,可以直接用你说的方法转成繁体的吗?如果可以我开贴给你分。Top

17 楼eslbs(书林跋涉)回复于 2005-11-08 14:56:41 得分 5

Option   Explicit  
  Private   Declare   Function   LCMapString   Lib   "kernel32"   Alias   _  
  "LCMapStringA"   (ByVal   Locale   As   Long,   ByVal   dwMapFlags   As   _  
  Long,   ByVal   lpSrcStr   As   String,   ByVal   cchSrc   As   Long,   _  
  ByVal   lpDestStr   As   String,   ByVal   cchDest   As   Long)   As   Long  
  Private   Declare   Function   lstrlen   Lib   "kernel32"   Alias   "lstrlenA"   _  
  (ByVal   lpString   As   String)   As   Long  
  Function   GBBIG5(sStr   As   String,   iConver   As   Integer)   As   String  
    On   Error   Resume   Next  
    Dim   STf   As   String   ',   繁体字符串  
    Dim   STj   As   String   ',   简体字符串  
    Dim   STlen   As   Long   ',   待转换字串长度  
            Dim   STR  
            If   iConver   =   1   Then   'BIG5-->GB  
                    STR   =   StrConv(sStr,   vbFromUnicode,   &H804)  
                    STf   =   StrConv(STR,   vbUnicode,   &H404)  
                    STlen   =   lstrlen(STf)  
                    STj   =   Space(STlen)  
                    LCMapString   &H804,   &H2000000,   STf,   STlen,   STj,   STlen  
                    GBBIG5   =   STj  
            ElseIf   iConver   =   2   Then   'GB-->BIG5  
                    STj   =   sStr  
                    STlen   =   lstrlen(STj)  
                    STf   =   Space(STlen)  
                    LCMapString   &H804,   &H4000000,   STj,   STlen,   STf,   STlen  
                    STR   =   StrConv(STf,   vbFromUnicode,   &H404)  
                    GBBIG5   =   StrConv(STR,   vbUnicode,   &H804)  
            End   If  
    End   Function  
   
   
   
   
  Private   Sub   Command1_Click()  
          Debug.Print   GBBIG5(GBBIG5("中国人",   2),   1)  
  End   Sub  
   
   
   
  Top

18 楼shawls(VB Fan)(QQ:9181729)回复于 2005-11-09 20:51:07 得分 0

我修改了一下  
   
  Option   Explicit  
   
  Private   Declare   Function   LCMapString   _  
                  Lib   "kernel32"   Alias   "LCMapStringA"   _  
                                                  (ByVal   Locale   As   Long,   _  
                                                  ByVal   dwMapFlags   As   Long,   _  
                                                  ByVal   lpSrcStr   As   String,   _  
                                                  ByVal   cchSrc   As   Long,   _  
                                                  ByVal   lpDestStr   As   String,   _  
                                                  ByVal   cchDest   As   Long)   _  
                                                  As   Long  
   
  Function   GBBIG5(ByVal   sStr   As   String,   Optional   iConver   As   Boolean   =   True)   As   String  
   
  On   Error   Resume   Next  
   
          Dim   STf   As   String   ',   繁体字符串  
          Dim   STj   As   String   ',   简体字符串  
          Dim   STlen   As   Long  
           
          STf   =   sStr  
          STj   =   sStr  
           
          STlen   =   VBA.LenB(STj)  
           
          If   iConver   Then     'BIG5-->GB  
                  LCMapString   &H804,   &H2000000,   STf,   STlen,   STj,   STlen  
                  GBBIG5   =   STj  
                     
          Else   'GB-->BIG5  
                  LCMapString   &H804,   &H4000000,   STj,   STlen,   STf,   STlen  
                  GBBIG5   =   STf  
          End   If  
                           
  End   Function  
  Top

19 楼seehill(学习中......)回复于 2006-03-17 22:48:56 得分 0

markTop

相关问题

  • 繁简体转换?
  • 汉字繁简转换?
  • Java 繁简字体转换问题!!!急!!!
  • 急!!!!!繁简体转换的问题
  • 高分征求 C++ Console 繁简转换原代码
  • 做繁简转换网站,提些建议。
  • 请教:如何调用Word中繁简转换的API?
  • 网站的繁/简转换问题!高手请进!
  • 急!求救:关于中文繁简体转换?
  • 小妹急求:怎样转换繁简体中文!

关键词

  • .net
  • 转换
  • 简体
  • word
  • stj
  • 字符串
  • stlen
  • gbbig
  • 繁体
  • strconv

得分解答快速导航

  • 帖主:shawls
  • sunxl
  • wumylove1234
  • sunxl
  • liujingxiong
  • aohan
  • lc_mtt
  • eslbs

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo