电子表格中显示带圈数字①(U+2460)失败,ChrW$(&H2460)生成问号
解决VB中ChrW$(&H2460)显示为问号的问题
可能的原因及对应解决方案:
输出目标不支持Unicode
若使用VB6这类早期环境,多数默认控件(如Label、TextBox)默认采用ANSI编码,传递Unicode字符串时,不兼容字符会被替换为问号。解决方式:- 将控件的
Font.Charset设为128(UNICODE_CHARSET),强制启用Unicode支持:' 示例:输出到Label1控件 Label1.Font.Charset = 128 Label1.Font.Name = "Calibri" Label1.Caption = Output_String - 若输出到文件,需确保写入时使用Unicode编码:
Open "result.txt" For Output As #1 Print #1, Output_String Close #1
- 将控件的
字体缺少目标字符
尽管Calibri通常支持U+2460,但字体损坏或版本过旧可能导致无法显示。可以:- 更换为Segoe UI Symbol等符号字体测试,确认字符本身可正常显示:
Label1.Font.Name = "Segoe UI Symbol" - 重新安装Calibri字体,确保为完整版本。
- 更换为Segoe UI Symbol等符号字体测试,确认字符本身可正常显示:
字符串传递时编码丢失
避免将Unicode字符串赋值给仅支持ANSI的变量或属性。如果需要调用旧版ANSI API,需先做编码转换,但内部控件显示时尽量保持Unicode传递。
验证用完整代码
Dim Prior_Char As String Dim Output_String As String Prior_Char = ChrW$(&H2460) Output_String = "Occurrence Count" & Prior_Char ' 绑定到Label控件显示 Label1.Font.Name = "Calibri" Label1.Font.Charset = 128 Label1.Caption = Output_String
内容的提问来源于stack exchange,提问作者JosephAE
相关产品推荐
相关产品推荐

