急,急,急,如何解决在VB中textbox中输入克罗地亚语šđžčćŠĐŽČĆ字符,请高手赐教!
本软件在中文系统运行,要同时能输入中文与克罗地亚语。
谢谢各位高手指点!!!

解决方案 »

  1.   

    最好是把特殊字符抓成图片格式
    然后换成RichTextBox
    利用下面这个代码就可以简单实现~http://www.5ivb.net/down/20/5ivb_1591.asp
      

  2.   

    呵呵,大哥,我来给你解释一下吧,,因为,我们公司也正在制作 多语言版的程序。所有,我还算是有点经验的,,首先,我要说明的一点就是,你想在VB中输入 你那个什么“克罗地亚语”是不可能的。除非,你使用“克罗地亚”版的 windows 操作系统。因为,VB本地,是只支持单字节的程序,你只是把当前操作系统的语版(字符集)设置成默认的也就是 VB的IDE 不支持 unicode.  所以说,不管你是在 VB的IDE 里直接输入,还是在“记事本”或其他的外部程序里输入好了,再粘贴进VB的IDE环境中时,VB就自动的将其进行字符转换,当转换的过程中VB发现他不认识该字符,所以就 显示也 一大堆的 ????? 或其它的什么了。
      

  3.   

    所以说,你想制作多语言版的程序,就必须使用国际化的unicode编码形式来存储你的那些将要显示出来的字符,也就是说,这样才可以使用你的程序 在中文操作系统下,就显示中文,在英文操作系统下,就显示英文,在日文操作系统下,就显示日文,在你的克罗地亚操作系统下,就是显示克罗地亚文,,你应该把你的克罗地亚文中存到数据库中,或者 记事本文件呀(记录是 unicode 编码的 即双字节编码) 然后当程序运行时再判断当前的语种,再调入相应的文字。
      

  4.   

    StrConv 函数
          返回按指定类型转换的 Variant (String)。
    StrConv(string, conversion, LCID)
    conversion 参数的设置值为:
    常数 值 说明 
    vbUpperCase 1 将字符串文字转成大写。 
    vbLowerCase 2 将字符串文字转成小写。 
    vbProperCase 3 将字符串中每个字的开头字母转成大写。 
    vbWide* 4* 将字符串中单字节字符转成双字节字符。 
    vbNarrow* 8* 将字符串中双字节字符转成单字节字符。 
    vbKatakana** 16** 将字符串中平假名字符转成片假名字符。 vbHiragana** 32** 将字符串中片假名字符转成平假名字符。 
    vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。 
    vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。 *应用到远东国别。
    注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。
      

  5.   

    我认为,需要注意的是,WIN 9X/ME并不支持UNICODE,所以使用UNICODE还需要考虑系统兼容性。
      

  6.   

    ?
    顺便我也提哈我见到的
    我在richtext中,发现这个控件对含有希腊字母等情况下,很多属性不能正常运行
    比如输入 “1μ211”到控件中,.selstart=1,.sellength=3
    那么结果会显示“μ211”
    总之有时它好象认这个字符,有时它也会将那个希腊字母作为两个字节来处理
    不知仁兄碰见过没
      

  7.   

    flyingZFX你好,我不是很懂使用国际化的unicode编码形式来存储那些将要显示出来的字符,如何把克罗地亚文中存到数据库中,或者 记事本文件呀(记录是 unicode 编码的 即双字节编码) 然后当程序运行时再判断当前的语种,再调入相应的文字。你有相应的源码程序吗?谢谢,如果分数不是问题可以再加。
      

  8.   

    >?
    >顺便我也提哈我见到的
    >我在richtext中,发现这个控件对含有希腊字母等情况下,很多属性不能正常运行
    >比如输入 “1μ211”到控件中,.selstart=1,.sellength=3
    >那么结果会显示“μ211”
    >总之有时它好象认这个字符,有时它也会将那个希腊字母作为两个字节来处理
    >不知仁兄碰见过没这个是当作全角字符进行处理的,就像处理汉字一样,当前系统的内码(GB)支持它,所以可以认出来;如果你注意过西欧国家的某些特殊字符,例如法语、西班牙语或者德语中的一些形似带音调符号的韵母字符,在当地的操作系统或软件中实际上是以半角符号显示的,这些字符放到其它内码的系统中就会显示为问号。这个例子也是一样,我猜楼主需要显示的克罗地亚语字符也是半角的吧。
      

  9.   

    不可能吧,textbox不是unicode,还是用RTFText吧
      

  10.   

    我试过用Richtextbox,但是当它与数据库联接更新时就会提示系统出错。还是不能解决这个问题啊。
      

  11.   

    当光标落在TEXT上时侯,把字体自动改为 克罗地亚语 试试看。
    我实验过 我们的少数民族语言,是通过字体文件实现的。保存到数据库中的时侯是字母如:bbb ,显示的时侯就是 正确的.
      

  12.   

    克罗地亚语有šđžčćŠĐŽČĆ这些字符,还是不能实现,真的没有高手能解决这个问题吗?如果分数不够再给分。请高手进来指点!
      

  13.   

    这里也不能正常显示克罗地亚语,就是Z、C、上面有第三声的V,等。在Word,记事本里可以实现,为什么在VB里不能实现呢?在输入法里可以添加克罗地亚语的
      

  14.   

    VB的IDE和控件都是不支持Unicode的
    所以遇到这些只会是显示问号要正常显示
    就得自己用Unicode的API做一个TextBox另外……
    觉得应该可以子类化文本框控件
    在控件重画时把默认的ANSI的API替换成Unicode的API应该就可以
    下面这段代码就是用两种版本的TextOut函数在窗体上输出那些特殊字符
    TextOut1 Lib "gdi32" Alias "TextOutA  是ANSI的,也就是VB默认的
    TextOut2 Lib "gdi32" Alias "TextOutW  是Unicode的Private Declare Function TextOut1 Lib "gdi32" Alias "TextOutA" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
    Private Declare Function TextOut2 Lib "gdi32" Alias "TextOutW" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As Long, ByVal nCount As Long) As LongPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Dim tS As String
        
        tS = ChrW(&H161) & ChrW(&H111) & ChrW(&H17E) & ChrW(&H10D) & ChrW(&H107)
        tS = tS & ChrW(&H160) & ChrW(&H110) & ChrW(&H17D) & ChrW(&H10C) & ChrW(&H106)    
        Me.FontSize = 30
        Me.Cls
        
        If Button = vbLeftButton Then
            TextOut2 Me.hDC, 10, 10, StrPtr(tS), 10
        Else
            TextOut1 Me.hDC, 10, 10, tS, 10
        End If
    End Sub
      

  15.   

    翻了下老帖子
    http://community.csdn.net/Expert/topic/3592/3592537.xml发现在控件里添加Microsoft Forms 2.0 Object Library之后
    多出来的标准控件就全是现成的Unicode版了~
      

  16.   

    对没错。我做繁体的时候也发现了这问题。Forms 2.0  控件太难看我换了第三方控件。component one 的控件。好用!
      

  17.   

    忙了一个晚上还是不能解决这个问题,我都试过上面各位兄弟的方法,还是不能解决啊,真的没有办法解决这个问题了吗?郁闷啊ing!就是在VB文本控件中能够输入国际化字符,包括具有注音符号的字符。注音符号放置在字母的上方、下方或覆盖其上,表示该字母与未加标记的字母发音不同。最常用的注音符号有:抑音符(à 中的 `)、尖音符(á 中的 ´)、母音符(â 中的 ^)、鄂音符(ã 中的 ~)、母音变化符(ä 中的 ¨)、圆音符(å 中的 °)和(ø 中的 /),均用于元音的发音。虽然用Richtextbox可以输入,但是当它与数据库联接时就不能正确转化。还有没有办法解决啊?