红联Linux门户
Linux帮助

web项目部署到服务器后中文乱码的解决

发布时间:2017-02-10 10:14:03来源:cnblogs.com/ygj0930作者:Charli_Yip
在把web项目成功部署到云主机后,通过浏览器成功地访问到了你的网站,却发现页面里本该由servlet传过来的中文参数值显示成了 ???  乱码。这是什么原因呢?
这可能是由于你的web项目所在系统的字符编码、tomcat的字符编码、开发项目时myeclipse的字符编码以及建立数据库时的编码不一致造成的,解决方法就是逐一设置。
 
一:myeclipse设置项目编码
点击windows,Preference,点击左侧General,workspace。设置编码为UFT8。
web项目部署到服务器后中文乱码的解决
 
二:项目中设置过滤器,设置request和response传递的参数为UTF8编码。
web项目部署到服务器后中文乱码的解决
别忘了在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" 两行,如下图:
web项目部署到服务器后中文乱码的解决
在下面,还有一处<Connector>,添加 URIEncoding="UTF-8",如下图:
web项目部署到服务器后中文乱码的解决
按Esc退出编辑模式,输入  :wq   保存并退出。
重启tomcat使配置生效。
 
经过以上5步,基本上统一了项目涉及的所有关于编码的地方,中文参数值乱码的问题就解决啦。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/28301.html