首页 > 代码库 > 项目部署过程中 解决页面乱码问题的经历
项目部署过程中 解决页面乱码问题的经历
本文转载自http://blog.163.com/lucia_gagaga/blog/static/26476801920167256342858/
项目部署完毕之后 数据库里面的数据读到页面上是乱码 就像这样子:
为了解决这个乱码问题 花费了一周的时间 请教了好多老师同学同事
最后是做了这么几件事才给搞好的:
1. 借助 notepad++ 把 .sql 文件的编码格式改成 utf8
2. 替换 mysql 的 my.cnf 文件 并加入指定字符集的语句
3. 使用终端命令重新导入 .sql 文件
4. 各种重启 清除浏览器缓存
首先解释[1. 借助 notepad++ 把 .sql 文件的编码格式改成 utf8]:
项目使用的 .sql 文件是从 war 包里面自动解压出来的 使用 vim 命令观察下:
这个自动解压出来的文件 本身就显示为乱码了
把它从 Linux 下面拿到 windows 下面 使用 notepad++ 打开 保存为 utf8 无 BOM 格式
然后给它移回到原来的位置
因为本项目做成了一个 nginx 后面挂载两个 tomcat 的架构 所以两个 tomcat 下面的 .sql 文件都要处理
处理完了之后 使用 vim 命令再次检查下 确保 .sql 文件本身已经没有问题了:
然后来解释[2. 替换 mysql 的 my.cnf 文件 并加入指定字符集的语句]
首先看下替换之前的 my.cnf 文件:
这个文件的作用之一 就是指定 mysql 的字符集 字符集与乱码问题一定有关
但是这个文件 一看就是之前经过了多次删减 已经被改动得面目全非 缺少了很多内容 不能继续使用了
在这个文件的作用下 当前 mysql 的字符集是这样的:
而正确的字符集应该是这样的:
所以 需要替换一个正确的 my.cnf 文件过来 那么 去哪里找这个正确的 my.cnf 文件呢?
http://www.cnblogs.com/HondaHsu/p/3640180.html 最后是从这个帖子里面找到了方法
[root@localhost bin]#
[root@localhost bin]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf‘? y
[root@localhost bin]#
然后 使用 vim 命令 修改这个替换过来的 my.cnf 文件
改好之后 随手把 mysql 重启一下 再来查看 mysql 的字符集
这时候 字符集已经改对了 感觉距离胜利又近了一步
再来解释[3. 使用终端命令重新导入 .sql 文件]
现在 .sql 文件也是好的 mysql 的默认字符集也是好的 就差导入 .sql 文件了
为了防止第三方工具篡改 .sql 文件 (事实上踩过坑之后知道第三方工具确实有时候会篡改 .sql 文件)
所以使用命令行方式来做这件事是最保险的
mysql> show databases;
mysql> drop database dangdang_lucia;
mysql> create database dangdang_lucia;
mysql> use dangdang_lucia;
mysql> source /usr/local/tomcat1/webapps/dangdang_dk/WEB-INF/classes/dang.sql
导入之后 直接 select 一下 最后一次确认没有乱码的存在:
最后就是[4. 各种重启 清除浏览器缓存]
这个就是为了保险起见 把 nginx 重启 两个 tomcat 分别重启 mysql 也给它再重启一下
然后清除掉刚才显示乱码的浏览器缓存 终于来到了见证奇迹的时刻
项目部署过程中 解决页面乱码问题的经历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。