轉載請注明原文地址:http://www.cnblogs.com/ygj0930/p/6383542.html
在把web項目成功部署到雲主機后,通過瀏覽器成功地訪問到了你的網站,卻發現頁面里本該由servlet傳過來的中文參數值顯示成了 ??? 亂碼。這是什么原因呢?
這可能是由於你的web項目所在系統的字符編碼、tomcat的字符編碼、開發項目時myeclipse的字符編碼以及建立數據庫時的編碼不一致造成的,解決方法就是逐一設置。
一:myeclipse設置項目編碼
點擊windows,Preference,點擊左側General,workspace。設置編碼為UFT8。
二:項目中設置過濾器,設置request和response傳遞的參數為UTF8編碼。
別忘了在web.xml中配置這個filter哦。
三:為雲ubuntu設置中文編碼
首先,安裝簡體中文環境
sudo apt-get install language-selector language-env language-pack-zh-hans
然后,更新locale
dpkg-reconfigure locales
編輯本地locale文件。注意,要先獲取root權限:
sudo passwd root
輸入密碼后,解開啟了root權限。然后輸入
su
輸入剛才的密碼,進入root權限。為locale文件賦予777權限:
chmod 777 /etc/default/locale
然后,編輯該文件:
sudo vi /etc/default/locale
按I進入編輯模式,移動光標到最下,在末尾添加
LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh"
按Esc退出編輯模式,輸入 :wq 保存並退出文檔。
然后重啟你的雲主機ubuntu,使配置生效。若你打開shell窗口就會發現有中文了,說明配置成功。
四:配置mysql字符編碼
1:修改mysql配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到 [mysqld] 節點,在其下面追加
character-set-server=utf8 collation-server=utf8_general_ci
重啟mysql,使配置生效
/etc/init.d/mysql restart
2:設置所用數據庫字符編碼
mysql> alter database 你的數據庫名 character set utf8;
當然,你也可以進入所使用的數據庫,一項項設置:
mysql>use 數據庫名; mysql> SET character_set_client=utf8; mysql> SET character_set_connection = utf8; mysql> SET character_set_database = utf8; mysql> SET character_set_results = utf8; mysql> SET character_set_server = utf8; mysql> SET collation_connection = utf8; mysql> SET collation_database = utf8; mysql> SET collation_server = utf8;
五:配置tomcat編碼
用 su 命令登錄root權限,cd到tomcat的conf目錄下。然后為server.xml文件賦予777權限。
chmod 777 server.xml
打開server.xml:
vi server.xml
按I進入編輯模式,找到<Connector >結點,添加 URIEncoding="UTF-8"、useBodyEncodingForURI="true" 兩行,如下圖:
在下面,還有一處<Connector >,添加 URIEncoding="UTF-8",如下圖:
按Esc退出編輯模式,輸入 :wq 保存並退出。
重啟tomcat使配置生效。
經過以上5步,基本上統一了項目涉及的所有關於編碼的地方,中文參數值亂碼的問題就解決啦~