How to display Unicode characters in VB6?
Possible Duplicate:
Whata€?s the best option to display Unicode text (hebrew, etc.) in VB6
在VB6中显示Unicode字符
当我尝试
这里是要探索的教程。看看这篇文章中的黑色垂直矩形。
假设Unicode已打开,请将以下字符串发送到窗口以显示:
参考。此代码段和参考内容更内联C。使用以下步骤在Visual C中关闭/打开UNICODE的位置:
在VS2008 / 2010中打开您的项目;
在解决方案资源管理器中右键单击该项目,然后单击"属性";
选择
在VB中显示UNICODE的好文章。
在
使用VB6并显示非US-ANSI字符,您需要了解三点主要知识:
- 在内部,VB6将字符串存储为Unicode。
- 显示字符串时,标准的VB6文本框和标签控件会执行从Unicode到ANSI的隐式(和内部)转换。
- 标准的VB6文本框和标签控件根据您可以指定的字符编码显示ANSI字节。
例如考虑尝试在
正如Jukka所说,
在下面的代码中,在运行时沿字体CharSet设置了字体名称()
字符集属性:
1 2 | 134 Simplified Chinese, gb2312 - Mainland China(PRC) and Singapore 136 Traditional Chinese, big5 - Taiwan and Hong Kong |
代码:
1 2 3 4 5 6 7 8 9 10 11 | 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
您需要使用" Unicode感知"控件。 VB6仅随附其中一些,尽管在Vista和更高版本或XP中(除非您使用该库的非Ink Redist版本,否则只有Tablet Edition),InkEdit控件可以做到这一点。
1 | InkEdit1.Text = ChrW$(9646) |
请注意
InkEdit控件实际上是增强的RichTextBox,它支持墨水输入以及在启用墨水的系统上键入。它也是Unicode控件,并且支持Unicode属性,例如
。
标准MSHFlexGrid,DataGrid和其他一些控件也支持Unicode。
有关此类字符,请参见http://www.alanwood.net/unicode/geometric_shapes.html。您基本上可以忽略有关ANSI,Charset等的jibber-jabber。这是相关的,但不适用于此处。
它显示问号的原因是所使用的字体中不存在该字符。您需要将字体设置为支持BLACK VERTICAL RECTANGLE的字体,例如Arial Unicode MS或Lucida Sans Unicode。