問(wèn)題描述: 菜單顯示中文為亂碼,顯示一個(gè)個(gè)小方框。 原因分析: 可能的原因有一下幾種 1.Java源文件編碼字符的問(wèn)題,如果使用eclipse可以查看一下java source文件的編碼方式。 2.javac編譯時(shí)的字符問(wèn)題,這一個(gè)問(wèn)題很容易被忽略,運(yùn)行一下javac可以看到有一個(gè)encoding的參數(shù)可以設(shè)置----這一個(gè)很重要。 3.要讀取文件的編碼和讀取時(shí)的字符集設(shè)置問(wèn)題,如果我們要用的字符串不是硬編碼在java源碼中,而是從資源文件中讀取時(shí),就要注意這個(gè)問(wèn)題了。 解決方案: 1.Java源文件的編碼,最好使用utf8編碼。 一般情況我們?cè)诰庉嬑募䲡r(shí)默認(rèn)使用的是本地系統(tǒng)的字符集(如GBK),所以對(duì)Java源文件要進(jìn)行字符轉(zhuǎn)換或提前做好設(shè)置,對(duì)于eclipse設(shè)置 Window-->Preferences-->General-->Content Types--> Java Source File。具體操作此處不詳述。 2.javac編譯時(shí)的參數(shù)設(shè)置,增加encoding參數(shù),如:javac -encoding utf8 Test.java 對(duì)于這一點(diǎn)要特別注意,eclipse的編譯器是沒(méi)有使用該參數(shù)的,我也沒(méi)找到該如何設(shè)置該參數(shù)(注意這里是編譯參數(shù)javac, 不是運(yùn)行參數(shù)java或jvm, 不是run config中配置的),所以遇到這個(gè)問(wèn)題的情況下不能使用eclipse來(lái)編譯了,至少在能配置javac之前是這樣。 要讀取的文件的字符編碼和讀取流編碼,對(duì)一個(gè)資源文件,我們也要設(shè)置其編碼為utf8(參照第2條,跟設(shè)置java源文件編碼是一樣的),同時(shí)在使用流讀取時(shí)也要設(shè)置流的讀取編碼(這個(gè)網(wǎng)上說(shuō)java字符流的默認(rèn)的是jvm的編碼,跟系統(tǒng)字符集一致)。 希望本文對(duì)讀者有所幫助,感謝閱讀本文。更多安卓技術(shù)問(wèn)題歡迎加群探討:278744577,驗(yàn)證碼:eec,不寫(xiě)驗(yàn)證不予通過(guò)喲~ |