2013-12-13 33 views
0

在Windows 7(64位)上,我將日語設置爲語言環境。上命令提示以下被反射: LC_ALL:English_United States.1252 LC_CTYPE:English_United States.1252 CHCP命令:激活代碼頁:932(這是日語)代碼頁和語言環境可以不同嗎?

我的問題是在轉換爲wchar_t *爲char *使用ICU庫應該使用什麼默認轉換器?在這種情況下,使用「US-ASCII」,並且在char *中得到垃圾結果。輸入:爲wchar_t *包含日文字符

+0

我不知道我理解你的問題?你問你是否ICU行爲正確,你是問如何讓ICU按照你想要的方式行事,還是你問如何正確轉換窗口上的字符集? –

+0

我會以簡單的方式重新翻譯。在Windows代碼頁= 932上,ICU API ucnv_getDefaultName()返回「US-ASCII」。它是否正確? – user1989504

回答

1

ICU documentation

根據系統的設計,安裝和API,它可能並不總是 可能找到一個默認的代碼頁如預期那樣充分作品...

如果您有檢測到適合您應用程序的更多 的默認代碼頁名稱的方法,則應該將該名稱設置爲第一個ICU函數調用的ucnv_setDefaultName() 。這確保 內部緩存的默認轉換器將從您的首選名稱 實例化。

+0

謝謝。我得到了這個問題。我使用的是「sbcs」版本的ICU庫,而不是「完整版」,這就是爲什麼在日文語言環境中獲得「US-ASCII」轉換器的原因。 – user1989504

相關問題