2015年1月26日星期一

Linux下部署Web应用乱码问题

  在 windows+eclipse+tomcat+mysql 开发 j2ee项目的时候 所有的编码都是显示正常的.
但把 web项目(.war) 移植到 Linux下做服务器的时候遇到了乱码问题.
  如果您遇到了跟我一样的情况,希望这篇文章能帮到你.


1.我首先怀疑了windows下的项目有没有使用 UTF-8.为什么用UTF-8我就不解释了.^_^
  所以首先对web应用设置了UTF-8并且编译环境设置Unix. 


  即使这样也没能解决我的问题.

2.所以我又尝试添加了 tomcat的 service.xml配置文件. 在你的linux tomcat/config/service.xml的 8080端口里添加 URIEncoding="UTF-8"


这样还是没能解决我的问题 -_-!!

3.之后我尝试对所有的页面(html,jsp)添加了 utf-8
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>添加商品</title>
  还是不能解决问题. 之后我就怀疑问题没有出在页面与后台交互乱码的问题.为了验证这一问题我试着在控制台上打出中文并对比数据库中的数据是否一致.


可以看到控制台显示中文了,但是数据库录入的是 ????. 这就证明录入数据的编码格式问题.

4.修改SQL编码格式. 在[mysqld]添加 character-set-server=utf8
  这里要特别注意一下, 添加此编码格式的时候根据MYSQL的版本不同可能加的内容不一样.
  我的MYSQL版本是 5.5。打开 vi /etc/my.cnf 在[mysqld]下添加 保存并退出.


  之后重新启动一下 mysql如果重启成功就说明修改成功.如果失败的话就说明你的版本添加的 编码格式跟我不一样.版本低的童鞋试试(http://www.poluoluo.com/server/201011/98360.html)
  mysql重启命令: service mysql restart;

  之后进入mysql(mysql -u root -p命令):查看编码变量。如果您跟我以下图片一致的话就说明修改成功了


最后在进行测试. 终于成功了 ^_^

希望这篇文章能帮助到您.



没有评论:

发表评论