如何在VB6中显示Unicode字符?
在VB6中显示unicode字符9646(BLACK VERTICAL RECTANGLE)的正确方法是什么? 当我尝试ChrW(9646)它会显示?
这是一个
tutorial探索.看一下
black vertical rectangle的这篇文章.
假设Unicode已打开,请将以下字符串发送到窗口以显示: Wchar_t mStr [] = {9646,0}; 0700这个代码片段和引用更加内联C.您可以使用以下步骤在Visual C中关闭/打开UNICODE: >在VS2008 / 2010中打开您的项目; 好文章怀疑displaying UNICODE in VB. 在窗体中使用文本框控件时,将Microsoft Forms 2.0对象库添加为参考库.此组件提供Unicode支持的控件,例如:文本框,标签,命令按钮,列表框,组合框,复选框,单选按钮,切换按钮,图像,标签和多页控件. 使用VB6并显示非us-ANSI字符,您需要了解3个主要内容: >在内部,VB6将字符串存储为Unicode. 在Unicode到ANSI转换之后,VB6然后尝试根据控件的Font.Charset属性显示字符数据,如果保持不变则等于ANSI字符集.更改控件的Font.Charset改变了VB6解释“ANSI”字节的方式.换句话说,你告诉VB6将字节视为一些其他字符编码而不是“ANSI”. 对于例如考虑尝试在英语计算机上显示Unicode日语字符串:设置Font.Charset = 128(日语),但Unicode字符串显示为所有问号字符.这是因为VB6首先尝试将日语Unicode字符串转换为ANSI,英语计算机为Windows-1252.日语字符在Windows-1252中无法表示.每个字符都无法转换,并替换为问号.例如在TextBox控件的属性设置中选择日语脚本与在运行时设置Font.Charset相同. 正如Jukka所说,Font在字体中显示字符的可用性,因此显示了UNICODE的重要作用.正如Hans所说,不支持字形的Font会产生一个矩形.因此,您需要确保您选择的字体能够渲染字形.对于例如MS Sans Serif字体不呈现?(带有HOOK的LATIN SMALL LETTER F,2字节Unicode值为0x0192),因此您将看到一个薄的实心矩形框.但是在Windows上,很少有字体具有足够广泛的字符表示中文. 在下面的代码中,Font Name()在运行时沿着Font CharSet设置 Charset属性: 134 Simplified Chinese,gb2312 - Mainland China(PRC) and Singapore 136 Traditional Chinese,big5 - Taiwan and Hong Kong 码: Sub changeToUniCodes() Dim strTxt2 As String UserForm1.TextBox2.Font.Charset = 134 '--CHINESESIMPLIFIED_CHARSET UserForm1.TextBox2.Font.Name = ChrW(&H5B8B) + ChrW(&H4F53) '-- 宋体 SimSun font UserForm1.TextBox2.Text = ChrW(37446) strTxt2 = UserForm1.TextBox2.Text 'notice that ChrW(9246) produces a different character in Chinese UserForm1.TextBox2.Text = strTxt2 & " " & ChrW(9246) End Sub VBE IDE中的输出:您也可以尝试VB6格式. 完成上述所有内容后,我注意到了这篇MSDN的文章.好吧,至少它的VB确认:D (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |