我已經嘗試了幾種方法來設置終端'編碼'從一個c + +程序。 我所能做的就是改變語言環境。或LANG變量。區域設置和編碼(終端)有什麼區別
不過我能進入哪些是不同的編碼比LANG(和了nl_langinfo的輸出(CODESET))
的字符,但是,如果我去到終端>設置字符編碼> ISO-8859-15(或者其他),那麼它只允許ISO-8859-15。 我可以從我的C++程序中完成同樣的事情(從GUI設置)嗎?
我用setlocale(LC_CTYPE,「」)將編碼設置爲終端編碼,但它只是使用LANG變量。並允許其他字符。
(後終端>設置字符編碼> ISO-8859-1(Latin1的))
>setenv LANG en_US.iso885915 --> latin9
>./a.out
Current Locale : C
Lang info : ANSI_X3.4-1968
Trying to change locale from C to ""
Current Locale : en_US.iso885915
Lang info : ISO-8859-15
Enter some string :¤¦¨´¸¼½¾ dfsafas --> but these are Latin1 charaters !!
Entered string : ¤¦¨´¸¼½¾ dfsafas --> They are even printed back !!
所以,這給我帶來了下來的問題,如果我對語言環境和編碼的理解是否正確。
有人可以澄清區別?
感謝您的解釋,這清除了很多東西。參考也是有幫助的。 – k0n3ru 2013-05-15 03:49:34