7
如何在C中查找當前語言環境的字符集?在C中獲取當前語言環境的字符集?
setlocale(LC_ALL,NULL)返回「en_US.UTF8」,但有沒有辦法獲得字符集?在我的系統上的/etc/locale.gen中,它列出了語言環境和字符集,所以它不在名稱中。
如何在C中查找當前語言環境的字符集?在C中獲取當前語言環境的字符集?
setlocale(LC_ALL,NULL)返回「en_US.UTF8」,但有沒有辦法獲得字符集?在我的系統上的/etc/locale.gen中,它列出了語言環境和字符集,所以它不在名稱中。
您可以使用nl_langinfo
(3)函數查詢當前語言環境的各種參數。該字符集通過致電nl_langinfo(CODESET)
獲得。
請注意,在使用nl_langinfo
之前,您必須先撥打setlocale
以使您的程序能夠識別語言環境。
你知道在Windows上做到這一點嗎? – Jookia
@Jookia:我會說只是定義UNICODE並在Windows中使用'wchar_t' API。 MSDN中的快速搜索建議尋找'_getmbcp'函數來獲取編碼(請注意,Windows使用編碼的數字代碼),但僅用於解釋傳統文本文件。 –
wchar_t APIs是UTF-16,所以假設我應該在Windows上扔UTF-16文本是安全的嗎? – Jookia