您的位置:首页 > 其它

乱码问题的整理 ps:补交昨天的作业

2016-05-12 19:41 267 查看
乱码问题困扰我了一个下午加一个晚上。。终于搞定。各方整理资料,以备以后遗忘!

1.jsp页面的编码设置 :主要是浏览器加载时候的编码。此外还应设置浏览器的编码方式。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; utf-8">


2.发起request请求之后,数据传递的编码设置,一般在filter里面设置req及res。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
req.setCharacterEncoding("utf-8");
res.setCharacterEncoding("utf-8");
if(req.getParameter("username")!=""){
chain.doFilter(req, res);
}
else {
res.getWriter().println("用户名不能为空");
}
}


3.tomcat服务器的 /conf/server.xml文档的 设置。
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
这里修改了这个server.xml文档,我当时用eclipse重启tomcat服务器后,该文档被重置了。后来发现,eclipse加载时候是会重写这个文档,秘密就在于eclipse工程 树栏目里面,有一个server文件夹,里面的server.xml必须要加同样的代码,即加一行URIEncoding = "UTF-8"即可。

4.数据库mysql的安装目录文档内编码设置。

在mysql安装目录里找到my.ini文件,(ps:没有my.ini的,复制一份即可。)文档编辑器打开这个文件之后,添加如下代码:

[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

[mysqld]
init_connect = 'SET NAMES utf8'
character-set-server=utf8


保存后,进cmd命令窗口,重启数据库:net stop mysql <回车> net start mysql <回车>

进入数据库以后,利用命令------> SHOW VARIABLES LIKE "%CHAR%"; 查看编码方式



5.mysql在创建database table时候,应该制定编码方式。

至此,你的汉字在cmd窗口也能正常显示了。虽然感觉自己写的好水,但还是有无穷的力量啊。谁让俺在快要进入而立之年的时候突然选择转行想要当一个程序员呢(码农。。)

路漫漫其修远兮,吾将上下而求索!!!此处应该有掌声。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: