如何测试我的应用程序是否支持UNICODE?

4

如果这是一个愚蠢的问题,我很抱歉。我最近使用C和WinApi在Windows上开发了一个应用程序。 我需要检查应用程序是否兼容UNICODE。 我该如何测试我的机器? 是否有任何遵循的过程来检查UNICODE兼容性? 此外,我没有中文语言机器或其他语言。 我希望在默认语言为英语的机器上进行此测试。

如果可能,请提供一些链接或详细的过程。


我的应用程序适用于从XP到Windows 7的所有版本(包括32位和64位)。 - 2vision2
1
那个事实并没有改变很多。 - Alexey Frunze
@AlexeyFrunze:话虽如此,有时拥有“中文语言机器”或至少“土耳其语言机器”是很有帮助的。如果不在不同的区域设置中测试代码,则会出现一些问题无法捕捉。仅举一个微小的例子,与Unicode无关:您可以进行所有测试,以确保值1.0在用户的区域设置中打印为“1.0”,但如果您从未将用户的区域设置为欧洲任何地方,则不会看到它打印为“1,0”。因此,您的测试不会注意到您的代码是否错误地依赖于特定的十进制分隔符。 - Steve Jessop
@SteveJessop 对的。不过,也可以设置区域设置。 - Alexey Frunze
3
@Alexey: 是的,我不确定提问者认为这个"机器"哪里不是中文。其中一半可能是在中国制造的,因此它也不是一个"英语"机器;-) Windows有单独的区域设置用于非Unicode和语言包来更改Windows的语言,不是所有版本都支持语言包。即使操作系统中的不同本地化文本对话框有问题时,如果你在对话框中没有做傻事情,甚至有可能会破坏你的程序。但我想我正在超越简单的问题,即程序是否支持Unicode,而是它是否适合国际使用:这是一个更强的要求。 - Steve Jessop
1个回答

6
很好的问题。在Windows平台上,这确实很具有挑战性,因为支持许多不同的编码和代码页,而且可以混合使用它们。
我通常会测试应用程序输入两种非ASCII语言的混合文本,例如一个由俄罗斯和希伯来字母组成的文件名,并查看应用程序是否能够打开此文件等。您可以复制这个:"שלום привет hello",并查看它对于这种类型的输入是如何工作的。
因为我们有两种语言在这里,所以不可能使用ANSI代码页进行支持,因此不会出现这种最常见的错误。

非常感谢您的回复。我的应用程序不会从用户那里获取任何输入。但是,使用路径(文件夹名称、文件名称)更多。我想知道是否有一种方法可以通过提供一些UNICODE类型的路径名来测试这种情况。您能否给我一些测试路径的示例。 - 2vision2
1
Pavel 给了你答案。复制他的示例文件名。然后在计算机上创建一个新文件夹,并将该示例粘贴到新文件夹名称中。如果需要,在文件夹中创建一个新文件,并将该示例粘贴到文件名中。现在在这个新创建的文件夹上运行你的程序 :) - DougN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接