在我的程序中,我用wstring
打印出我需要的文本,但它給了我隨機密碼(由於不同的編碼方案)。例如,我有這塊代碼。wstring支持哪些語言環境?
wstring text;
text.append(L"Some text");
然後我用directX在屏幕上渲染它。我曾經使用wchar_t
,但我聽說它有可移植性的問題,所以我切換到swtring
。 wchar_t
工作正常,但它似乎只從我能告訴的英文字符(打印輸出完全忽略輸入的非英文字符),這很好,直到我切換到wstring
:我只有隨機密碼看起來像中文和韓語混在一起。有趣的是,我的非Unicode文本的計算機語言環境是中文。根據我所看到的,我懷疑它會正確渲染漢字,所以我試了一下,它確實正確顯示了字符,但前面有一個正方形(這仍然是一種不正確的顯示)。然後我猜想編碼可能取決於語言區域設置,因此我將語言環境切換爲英語(美國)(我使用win8),然後重新啓動,並在源文件中看到我的中文測試字符變成了一些隨機的東西(我的文件沒有保存因爲所有文本都是英文的)所以我嘗試了英文字符,但沒有運氣,顯示看起來完全一樣,並且與語言環境無關。但我不明白爲什麼它不能正確顯示,看起來像亞洲字符(即使我使用英語區域設置)。
是否有一些轉換應該做或應該保存我的文件在不同的編碼格式?問題是我想正確顯示英文charactore,這是默認的。
絕對最小每個軟件開發人員絕對積極地必須瞭解Unicode和字符集:http://www.joelonsoftware.com/articles/Unicode.html –
@Laurent但它是如何幫助我解決此問題的? – ryf9059
@ ryf9059:它提供了有關這些類型問題的背景信息。 –