如何在整个VB 6.0应用程序中支持Unicode字符

时间:2013-08-21 15:25:21

标签: unicode vb6

我在VB 6.0应用程序中遇到的问题是Unicode字符不支持。我需要在我的应用程序中的记录集字段中设置中文字符 - (每个字段的大小是从程序本身设置的)。如果我们将中文字符设置到记录集字段中,则会出现多步操作错误(因为保持字段大小不够)。如果我们从服务器控制面板的区域设置中将语言设置为中文(控制面板>区域和语言设置>管理选项卡>更改系统区域设置...>到中文),则不会触发此错误

如果我们设置此项,那么我们的应用程序的时间设置将会改变。我需要一些帮助,从控制面板更改我们如何才能解决这个问题。

请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分:2)

在Windows中,您可以将区域设置设置为中文,同时保留时间和日期格式。 http://www.techpavan.com/2009/04/07/change-time-format-windows/


在Visual Basic 6应用程序中使用Unicode时,这篇文章有详尽的解释和示例:http://www.example-code.com/vb/vbUnicode1.asp

引用此链接:

  

在内部,VB6将字符串存储为Unicode。您的VB6程序能够处理包含任何字符的任何语言的字符串 - 无论是中文,日文,冰岛文,阿拉伯文等。它完全支持Unicode 。单个字符串可能包含多种语言的字符。您可以将这些字符串保存到数据库,文件等,这应该没有问题。只有在标准VB6控件中尝试显示(即渲染字形)外来字符时才会出现问题。

     

显示字符串时,标准VB6文本框和标签控件执行从Unicode到ANSI的隐式(和内部)转换。这是导致所有问题的混杂行为。在VB6内部,运行时将Unicode转换为操作系统的当前Windows ANSI代码页标识符。除了更改系统的ANSI代码页之外,无法更改此转换。

     

标准的VB6文本框和标签控件根据您可以指定的字符编码显示ANSI字节。在Unicode转换为ANSI之后,VB6会尝试根据以下内容显示字符数据。控件的Font.Charset属性,如果保持不变,则等于ANSI字符集。更改控件的Font.Charset改变了VB6解释“ANSI”字节的方式。换句话说,你告诉VB6将字节视为一些其他字符编码而不是“ANSI”。注意:VB6能够显示所有主要语言的字符。只需要告诉它这样做,并且内部需要正确的字节才能实现。

答案 1 :(得分:-1)

尝试将这些控件上的字体设置为Lucida Sans Unicode以添加Unicode支持。