我一直在使用listView测试一个应用程序,它适用于西欧角色。但是,如果区域设置是土耳其语,则列表视图中的字符似乎是错误的。
例如,字符'Ş'将显示为'Þ'。
我可以看到两个字符都表示为十进制:254。
如何强制我的listView使用本地代码页而不是unicode? p>
感谢您的任何建议。
答案 0 :(得分:1)
如果它在VB表单包中,它不会使用unicode。
VB6是一个ANSI应用程序(Win95没有unicode API)。内部使用Unicode以及使用COM时。但是创建一个列表框的窗口使用ANSI。
因此,您需要在区域设置中设置nonunicode代码页。
此外,帮助还有一整章。
答案 1 :(得分:0)
结果证明你可以设置下面列出的listview的字符集:
listView.Font.Charset = 1 ' Default charset obtains current codepage
这解决了我的问题,尽管语言格式需要与Locale相同。
答案 2 :(得分:0)
MSHFlexGrid提供的一件事是Unicode支持。 VB6中根本没有“Unicode问题”,这是选择正确控件的问题。
如果有一个超越VB6的演变,我们已经看到更多的控件转移到Unicode,因为Win9x消失了。可悲的是,这被缩短了。
如果您需要Unicode ListView, 可以做的事情。有第三方控件甚至方法可以使用Unicode子类化在OCX中的ListView控件包装器下挖洞。