2011-04-22 70 views
0

我们正在开发远程管理软件。我们需要比较从远程系统获得的数据。我们使用C++和WMI从远程系统获取数据。在处理数据时,我们可能需要从远程系统收集的数据中比较某些单词(与常量词相比)。当主机和目标系统使用英文时,我们在比较字符串时没有问题。比较两种语言字符串

但是,当远程计算机返回英语以外的数据时,我们的比较失败。我们想到实施本地化,并保留所有可能的语言字符串,。如果我们列表中的一个字符串是可选的,我们可以继续。但这是非常繁琐的过程。

有什么方法可以比较C++或WMI中两种不同语言的字符串...?

任何API ..?或变通办法...?

请帮忙!

+0

比较哪种数据?你想用这个比较来做什么? – 2011-04-22 06:35:28

+1

为什么不重写发送系统向您发送某种错误代码,而不是本地化的字符串 – zabulus 2011-04-22 07:02:06

+0

我会在回答Michael询问数据是什么样的时候。是否“但是当远程计算机返回英语以外的数据”'意味着语言或编码方式? – jonsca 2011-04-22 07:40:38

回答

0

有一些c#工具用于比较语言环境或文化特定方式中的字符串,请参见this,它给出了两个德语字符串之间的比较示例,该字符串处理“ss”和essettz字符“ß”的不同表示当量。

要做到这一点,你需要掌握主机语言的知识,如果你不使用德语工作,那么你应该对待ss和'ß'是有争议的。

但我不清楚你是否有这种问题。你是否真的希望实际翻译你收到的文字?所以在你的机器上你有一个字符串列表:

RED 
GREEN 
WHITE 

并且你可能从主机RED或ROUGE或ROT收到。在这种情况下,我并不认为你有很多选择,只能保留一个翻译表。

0

您应该使用std::locale及其各种功能(operator())。我想你也想使用std :: wstring而不是通常的std :: string来支持类似UTF的字符。

+0

语言环境在这里帮不了多少忙。我在瑞典的语言环境中,但是用英语写这个。 – 2011-04-22 12:10:07