如何在VB6中显示Unicode字符?

前端之家收集整理的这篇文章主要介绍了如何在VB6中显示Unicode字符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Possible Duplicate:
07000

在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中打开您的项目;
>在Solution Explorer中右键单击该项目,然后单击Properties;
>选择配置属性 – >常规,选择字符集并将当前值更改为使用多字节字符集. (关闭)

文章怀疑displaying UNICODE in VB.

在窗体中使用文本框控件时,将Microsoft Forms 2.0对象库添加为参考库.此组件提供Unicode支持的控件,例如:文本框,标签,命令按钮,列表框,组合框,复选框,单选按钮,切换按钮,图像,标签和多页控件.

使用VB6并显示非us-ANSI字符,您需要了解3个主要内容

>在内部,VB6将字符串存储为Unicode.
>显示字符串时,标准VB6文本框和标签控件执行从Unicode到ANSI的隐式(和内部)转换.
>标准VB6文本框和标签控件根据您可以指定的字符编码显示ANSI字节.

在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

原文链接:https://www.f2er.com/vb/255950.html

猜你在找的VB相关文章