2011-04-22 129 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