2008-10-02 54 views
4

到目前爲止,我一直在我的嵌入式系統(路由器,交換機,電信設備等)的C++應用程序中使用std :: string。對於嵌入式應用程序,從std :: string切換爲std :: wstring?

下一個項目,我正在考慮從的std :: string切換到標準:: wstring的支持Unicode。例如,這將允許最終用戶在命令行界面(CLI)中使用中文字符。

我應該期待什麼併發症/頭痛/驚喜?例如,如果我使用仍然使用std :: string的第三方庫?

由於國際字符串的支持是不是強爲我工作在嵌入式系統的類型的要求,我只當是不會使其造成重大頭痛做到這一點。

回答

1

注意,許多通信協議要求的8位字符(或7位字符,或其他品種),所以你會經常需要將內部wchar_t的/ wstring的數據和外部編碼之間的轉換。當你需要有一個Unicode字符8位表示

UTF-8編碼是有用的。 (請參閱How Do You Write Code That Is Safe for UTF-8?瞭解更多信息。)但請注意,您可能需要支持其他編碼。

越來越多的第三方庫支持Unicode,但仍有很多不支持Unicode。

我真的不能告訴你是否值得頭痛。這取決於你的要求是什麼。如果您從頭開始,那麼從std :: wstring開始比從std :: string轉換爲std :: wstring更容易。

+0

對。您可以將字符串用於UTF-8,並且英文將完全以與ASCII中相同的方式表示。 – Lev 2008-10-02 19:04:48

+0

即使是英文,還有偶爾的José... – DevSolar 2013-05-16 10:01:42

1

的std :: wstring的是Windows上保持Unicode字符串的便攜式代碼一個不錯的選擇,而不是在大多數其他平臺,而不是ceirtanly。最好儘量堅持使用std :: string和UTF-8。

+0

真的嗎?你能詳細說明一下嗎?我認爲STL庫非常便攜。 - Cayle。 – 2008-10-02 19:49:10

相關問題