vb6.0 显示GB18030问题,例如“㛃”这个字,要求能从sqlserver2005中正常读取出来和在richtextbox中正常显示就可以了
,简单说就是能正确显示“㛃”这样的GB18030汉字,谁能解决给200,另外开贴给分

解决方案 »

  1.   

    使用drawtext就可以了,richedittext是不支持gb18030那些4个字节的字符滴,word支持。
      

  2.   

    在vc下,要使用gb18030,先安装ms的补丁,然后调用ExtTextOutL就可以drawtext出来GB18030的字符了。当然字体要选择“宋体_18030”vb下drawtext出来应该也没问题,gb18030不在windows默认支持的uincode-2中,还没看见什么控件可以支持gb18030,除非自己写。
      

  3.   

    我在richtextbox里是可以显示出来的,现在就是定义一个string,例如
    dim s as string
    s=richtextbox.text这时候s里取出来的是??,如何让s能够取到正常的字符??,例如“㛃”这样的GB18030汉字
      

  4.   

    看到 ?? 并不等于 s 的内容不对。
    因为字符串是 BStr 格式,4 个字节被当作两个字符解析了。
      

  5.   

    告诉你richedit不支持gb18030了,你就不要坚持了。
      

  6.   

    你既然说 richtext 能正确显式,那么应该已经取出了正确的内容,不信用 AscW 看看 s 的第一、第二字符的编码。
      

  7.   

    那么 RichTextBox1.TextRTF 的值呢?
      

  8.   

    63 = 0x3f,就是?,这是windows对 本地不存在的字符 的默认处理字符。
      

  9.   

    看我的博客中的《让Windows系统和应用程序使用GB18030》一文。
      

  10.   

    我这样使用的:Dim str As String
    dim P as integer
    str = ChrW(&H3E8)RichTextBox1.SelFontName = "我的字体名称"
    Call SendMessage(RichTextBox1.hwnd, EM_REPLACESEL, 0, ByVal str)这样做可以录入,并在RICHTEXTBOX中显示字符,但是再将该字符选择后,用以下方式:
    msgbox ascW(RichTextBox1.SelText)好像只是显示一个63,不知是何原因
      

  11.   

    我这样使用的:Dim str As String
    dim P as integer
    str = ChrW(&H3E8)RichTextBox1.SelFontName = "我的字体名称"
    Call SendMessage(RichTextBox1.hwnd, EM_REPLACESEL, 0, ByVal str)这样做可以录入,并在RICHTEXTBOX中显示字符,但是再将该字符选择后,用以下方式:
    msgbox ascW(RichTextBox1.SelText)好像只是显示一个63,不知是何原因