-
1 # 使用者6292067205836
-
2 # 使用者3924726746242
IDE環境造成的亂碼
其實這個是非常讓人鬱悶的問題,有時候還真的很難發現。現在流行的兩種JavaIDE,idea和eclipse。idea的所有預設編碼都是UTF8格式,基本上統一所有編碼,如果你再idea出現了亂碼問題,一般不是idea自身的問題。
如果你看到idea的控制檯出現了中文亂碼,這很有可能是你選用的字型不支援部分中文造成的,idea不背這個鍋。
對於eclipse,這貨可能是為了讓華人寫程式碼的時候更加方便,當你點選目錄中的src,然後點選file->Properties->Resources,你會看到,TextFile Encoding預設是GBK。是不是很絕望,為了下次不再因為這個問題產生亂碼,記得建立資料夾以後就配置一下src的encodeing,還是剛剛的那個路徑,改成UTF-8就行了。
也許你會說,我根本就沒發現這裡有什麼問題啊,我一直是這種設定也沒有發生過亂碼。我只能說,那是因為你沒有遇到過。
最常見的一個場景就是web應用中(不使用框架),當你提交的表單中存在file域的時候,你可能會使用一些檔案上傳元件,這些元件處理資訊的時候,會將表單中的資料變成UTF8或者你設定的格式,但是,如果你的檔案編碼是GBK的話,就肯定就會碰到亂碼的問題了。具體原因有待深究,但個人覺得這可能是因為編譯後的class位元組碼檔案處理資訊過程的問題。
POST和GET方法傳遞引數造成的亂碼
如果你發現更改了檔案編碼並且重新build以後,還是出現亂碼的問題,如果依然是web應用的話,那就很有可能是POST和GET方法傳參造成的亂碼。
這個問題可以看我的文章,POST和GET方法亂碼問題解決方案,寫的其實非常詳細了。
資料庫編碼格式導致的
如果你發現,你從資料庫中讀取出的資料是亂碼的,那麼原因也很簡單,是因為資料庫的字符集配置問題。
首先,進入mysql的控制檯,也就是命令列中。輸入如下語句,檢視mysql的字符集配置。
- 方法一:show variables like 'collation_%';
- 方法二:show variables like 'character_set_%';
如果你看到,字符集列表中有顯示各種字符集的配置都是拉丁文,也就是lantin這樣子的。那麼毫無疑問是因為字符集的配置問題了。對於不同的系統,配置的方法都是相同的,那就是找到mysql檔案的配置資訊路徑,一般linux可以按照我的這篇文章來進行配置,windows也可以參考,只需要找到配置檔案,做最後的字元配置操作即可。windows的mysql配置檔案一般在mysql的安裝目錄下,如果沒有,那麼可以自己建一個名為my.cnf的檔案(如果無效,試試新建mysqld.cnf檔案),然後在檔案中輸入如下配置資訊:
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
回覆列表
這個是解碼的問題,要不就換個瀏覽器,要不就更改設定,或者試下能不能找到電子版,直接看PDF。