JavaWeb應用項目中文亂碼的解決


 轉載請注明原文地址: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步,基本上統一了項目涉及的所有關於編碼的地方,中文參數值亂碼的問題就解決啦~

 

  

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM