一、JSP 2 Servlet 乱码解决
前提:在JSP文件头部加上下面这行代码
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"%>
1.POST方式提交
在servlet里的方法中添加下面这两行代码
/*
* 注意在request.getParameter("");代码之前添加
* (并且此方式只对post方法有效)
*/
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
2.GET方式提交 中文在URL中会乱码
一、在js文件中使用encodeURI转码函数(转码两次)
/*
* var text = encodeURI(encodeURI("中文"));
*/
二、在servelt中使用 java.net.URLDecoder.decode 进行解码
/*
* String str = request.getParameter("text");
* String text = java.net.URLDecoder.decode(str,"UTF-8");
* (解码一次即可)
*/
二、Servlet 2 MySQL乱码解决
一、首先差看数据库是否为UTF-8的编码
二、在连接mysql时数据库名后加上 ?useUnicode=true&characterEncoding=utf8
例子(&时&的转义):
jdbc:mysql://localhost:端口/数据库名?useUnicode=true&characterEncoding=utf8
三、更改mysql的配置
启动mysql服务
运行cmd
mysql -u root -p
连接MySQL
show variables like 'character%';
set character_set_client=utf8;
这只是例子
四、改完后重启MYSQL服务即可
其他文章
【问题解决】java.lang.ClassNotFoundException: org.apache.jsp.index.jsp服务器500错误