Visual studio 2008 为什么';我的应用程序是否显示Unicode?

Visual studio 2008 为什么';我的应用程序是否显示Unicode?,visual-studio-2008,unicode,mfc,Visual Studio 2008,Unicode,Mfc,我从头创建了一个MFC应用程序,从一开始就非常小心地使用支持Unicode的结构,如CStringW、LPCWSTR等来存储和处理数据。Unicode也在项目中定义 由于我只说一种语言,所以我尝试了以下测试,以确保应用程序正确处理和存储Unicode字符串 在其中一个编辑框中,我输入ALT+2061和ALT+2066以显示键盘上不可用的符号。编辑框上唯一显示的是一个正方形。在记事本中尝试相同的想法,符号正确显示。这只是字体问题吗?如果是,我应该使用什么字体 更新: 我从unibook复制了几个符

我从头创建了一个MFC应用程序,从一开始就非常小心地使用支持Unicode的结构,如CStringW、LPCWSTR等来存储和处理数据。Unicode也在项目中定义

由于我只说一种语言,所以我尝试了以下测试,以确保应用程序正确处理和存储Unicode字符串

在其中一个编辑框中,我输入ALT+2061和ALT+2066以显示键盘上不可用的符号。编辑框上唯一显示的是一个正方形。在记事本中尝试相同的想法,符号正确显示。这只是字体问题吗?如果是,我应该使用什么字体

更新:

我从unibook复制了几个符号,并将它们粘贴到编辑框中。除了一些小符号外,它们被正确地处理和保存,所以我对此感到高兴


圣诞快乐。

是的。这是字体问题

我不会为此担心,因为安装在客户机器上的字体与您的不同。如果他需要汉字,他就会拥有它。您可以强制使用特定字体。然后,您将在Windows上正确地看到它


我还建议您不要使用unicode和W(widechar)之类的东西。请参见是。这是字体问题

我不会为此担心,因为安装在客户机器上的字体与您的不同。如果他需要汉字,他就会拥有它。您可以强制使用特定字体。然后,您将在Windows上正确地看到它


我还建议您不要使用unicode和W(widechar)之类的东西。参见

U+2061是“函数应用”,这是一个特殊的非打印“运算符”字符,U+2066尚未定义(从Unicode 5.2开始)。因此,您在应用程序中看到的是正确的;可能您在记事本中输入了不同的代码?

U+2061是“函数应用”,这是一个特殊的非打印“运算符”字符,U+2066尚未定义(从Unicode 5.2开始)。因此,您在应用程序中看到的是正确的;可能您在记事本中输入了不同的代码?

请确保您所描述的Alt键输入法在其他程序中有效。它在我的WinXP系统上似乎不起作用


您可能只想从unicode.org下载Unibook并从中复制字符以确保。

确保您描述的Alt键输入法在其他程序中有效。它在我的WinXP系统上似乎不起作用


您可能只想从unicode.org下载Unibook并从中复制字符,以确保这一点。

这不是字体问题,而是ALT+number方法的问题

使用alt键和numberpad可以输入任何ASCII代码,即使是键盘上没有键的代码。以这种方式输入unicode字符是不可能的-每次输入4位代码时,它只是被包装成8位ASCII代码:

2061->1000000101->00001101->ASCII字符13,一个音符

它显示为正方形的原因是因为字符13是一个控制字符,所以大多数现代字体没有视觉表现


如果要使用numberpad输入unicode字符,则需要使用Microsoft添加的扩展模式-按住alt,然后按住numberpad上的加号(+)键。现在键入所需unicode字符的编号,然后释放alt和+键。

这不是字体问题,而是alt+number方法的问题

使用alt键和numberpad可以输入任何ASCII代码,即使是键盘上没有键的代码。以这种方式输入unicode字符是不可能的-每次输入4位代码时,它只是被包装成8位ASCII代码:

2061->1000000101->00001101->ASCII字符13,一个音符

它显示为正方形的原因是因为字符13是一个控制字符,所以大多数现代字体没有视觉表现


如果要使用numberpad输入unicode字符,则需要使用Microsoft添加的扩展模式-按住alt,然后按住numberpad上的加号(+)键。现在键入所需unicode字符的编号,然后释放alt和+键。

转到Spy++并查看窗口类。是编辑,还是RICHEDIT的变体?RichEdit窗口要求您指定可以使用的字体。

转到Spy++并查看window类。是编辑,还是RICHEDIT的变体?RichEdit窗口要求您指定可以使用的字体。

我建议您在应用程序的某个地方的编辑控件上运行函数()。如果它返回TRUE,那么您肯定知道您的应用程序和控件支持unicode(很可能是字体问题)。
但是,如果返回false,您必须查看代码和项目设置,以找出应用程序/窗口不支持unicode的原因。

我建议您在应用程序中的某个位置的编辑控件上运行函数()。如果它返回TRUE,那么您肯定知道您的应用程序和控件支持unicode(很可能是字体问题)。
但是,如果返回false,您必须查看代码和项目设置,以找出应用程序/窗口不支持unicode的原因。

谢谢。是否有一个易于测试的应用程序确实正确处理Unicode数据?我更希望在最终用户发现问题之前得到正确的答案,但也许我是过于谨慎了?还感谢您提供有关unicode的链接。此应用程序中的数据在存储之前已转换为UTF8。错误-一般来说,如果记事本正确显示字符,这不是字体问题,因为Windows将尝试替换合适的字体以显示字符。链接问题的答案基本上一致认为,每个应用程序