项目部署过程中 解决页面乱码问题的经历

本文转载自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
最后是从这个帖子里面找到了方法

[[email protected]
bin]#
[[email protected] bin]# cp /usr/share/mysql/my-medium.cnf
/etc/my.cnf
cp: overwrite `/etc/my.cnf‘? y
[[email protected] 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
也给它再重启一下
然后清除掉刚才显示乱码的浏览器缓存 终于来到了见证奇迹的时刻

时间: 2024-10-11 02:50:09

项目部署过程中 解决页面乱码问题的经历的相关文章

项目部署到weblogic后页面乱码问题

问题描述: windows环境下,将项目部署到weblogic运行startWebLogic.cmd启动weblogic后,浏览器访问页面乱码问题,在Tomcat不会乱码. 请不要看着博文就直接改了,先看完你的问题是属于哪种情况再改,避免走弯路!要对症下药.我就走了很多弯路 下面总结了1.2.3.4种解决方案,遇见最多的是前两中修改方案,请看: 1.页面乱码的修改方案: a.先查看D:\oracle\middleware\user_projects\domains\base_domain\ser

自动化运维平台OMserver部署过程中解决的问题1

https://blog.liuts.com/post/245/1/1/#topreply 记录下来,供自己研究 首先,最好按照博客的步骤来进行. nginx配置文件  /usr/local/nginx/conf/nginx.conf的配置文件 server {         listen       80;         server_name  omserver.domain.com;         #charset koi8-r;         #access_log  logs/

Rancher 2.0部署过程中常见问题分析与解决

本文是Rancher 2.0部署与使用过程中常见的问题及其解决方法,多数问题整理收集自Rancher官方技术交流群内用户的提问与反馈.欢迎扫描文末二维码,添加Rancher小助手为好友,加群获得更多技术支持. 本文主要内容为: 1.部署Rancher 2.0的环境需求 推荐使用的操作系统 推荐的硬件配置 支持的docker版本 防火墙需要允许通过的端口 2.部署过程中的常见问题及排查思路 环境信息残留 openssh版本过低问题 nodeport端口只有一台机器能访问 部署使用calico网络部

Maven部署过程中的ClassCastException问题

引言: Maven功能强大,但是又有些复杂,难以捉摸和使用.在本人开发中碰到了一个ClassCastException的问题,通过这个问题的解决,加深了对于maven依赖管理中scope的理解. 1. 问题的引入 部署环境tomcat 7, 开发中使用的框架spring,spring data,hibernate之类的,基于Maven部署过程中,会出现以下异常信息: SEVERE: Exception starting filter Spring OpenEntityManagerInViewF

很多编程问题是在睡觉过程中解决的

很多编程问题是在睡觉过程中解决的. 有两种方法: 首先将考虑的问题记住,然后睡觉,第二天醒来一些问题就被解决了,So Easy: 另一种方法是睡觉前在一些论坛或者用 tweet 发个帖子,第二天已经有人将解决方法发给你了. 做一名优秀程序员需要很长的时间,你需要学习很多东西,当遇到问题的时候,你需要知道向谁请教. 摘自:http://news.cnblogs.com/n/503469/

web项目中解决post乱码和get乱码的方法

前提复习编码问题产生的原因: 1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上. 2.  URL编码规则. 每对name/value由&分开,每对来自表单的name/value用=分开.如果用户没有输入值的那个name依旧会出现不过就是没有值. URL编码是在字符ASCII码的十六进制数的前面加上%.例如\(她的十六进制数表示为5c)的UR

log4j 日志信息的引入(通用版)——解决项目运行过程中的日志信息

定义 log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.D

ADFS部署过程中设置network service对证书的读取权限

今儿在部署客户正式环境的ADFS时候遇到一问题,在配置完基于声明的身份验证后通过url访问居然报错了,这干过N回的事怎么会出错了呢,百思不得其解 网页报错如下 系统日志报错如下, 回想过程中的每一步,突然想到这回好像没对证书做什么操作,因为证书是客户买的由他们IT人员导入好了的,我就直接在绑定的时候选择下就行了,所以少了一步操作.通过管理工具点开证书右击所有任务-管理私钥-添加NetWork Service,再次访问就没问题了. 下图取自勇哥的博客

Unity5.x 项目升级过程中常见问题解决方案总结

最近整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享. 1:Unity4.x 项目中3D模型其材质丢失,成为"白模"?      解决方案:手工重新赋值材质贴图. 2:Unity4.x 项目中的NavMesh 升级报错?     "NavMesh asset format has changed. Please rebake the NavMesh data." ?     解决方案:按照字面含义,重新对静态物体进行烘焙即可. 3