zoukankan      html  css  js  c++  java
  • 项目部署过程中 解决页面乱码问题的经历

        本文转载自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 也给它再重启一下
    然后清除掉刚才显示乱码的浏览器缓存 终于来到了见证奇迹的时刻

    项目部署过程中
 解决页面乱码问题的经历 - 一头小鹿 - 一头小鹿在写博客
     
  • 相关阅读:
    python list间的并集、差集与交集
    kafka常用命令,启动/停止/查看主题列表/消费/生产
    python json
    lrzsz
    HashMap实现原理,源码分析
    Java中try catch finally语句中含有return语句的执行情况
    Maven
    我的面试题
    JSON数据格式
    springMVC2
  • 原文地址:https://www.cnblogs.com/lgqboke/p/5809261.html
Copyright © 2011-2022 走看看