Servlet中文乱码问题解决办法
首先对于源jsp网站和servlet里面的字符集要一样,一般支持中文的字符集为UTF-8最好采用这个字符集(除此之外还有gb2312);
对于源jsp文件的代码中需要设置
设置你的page里面的字符集
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
设置html文件里面的字符集
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
如果对于参数通过get方法进行传参的话,有两种方法:
方法一:
在tomcat里面设置字符集为UTF-8
修改server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
* 必须有修改tomcat服务器配置文件权限
方法二:通过对servlet里面的进行设置:
response.setHeader("Content-Type", "text/html;charset=UTF-8");//设置UTF-8的显示页面的类型和字符集
username = new String(username.getBytes("ISO8859-1"),"utf-8");//根据你的tomcat里面的字符集进行对中文进行转换,将iso转换为UTF-8
如果对于参数通过post方法进行传参的话,则设置为:
response.setHeader("Content-Type", "text/html;charset=UTF-8");//设置UTF-8的显示页面的类型和字符集
request.setCharacterEncoding("utf-8"); //设置通过post方法进行传参的字符集
在这里需要注意的是:
1.对于post和get传参的时候解决中文乱码问题的时候一定要分清楚是哪种方式传参,是post就得用post不然会没用的
2.对于两种不同的地方不能合用,乱码问题解决不了的。
下面附上一个例子:
get.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;charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="servlet/test" method="get">
<input type="text" name="getV">
<button type="submit">测试get请求</button>
</form>
</body>
</body>
</html>
post.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; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="servlet/test" method="post">
<input type="text" name="postV">
<button type="submit">测试post请求</button>
</form>
</body>
</html>
test.java
package testcharset; import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class test extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Content-Type", "text/html;charset=UTF-8");//设置UTF-8的显示页面的类型和字符集
PrintWriter out=response.getWriter();
try {
String username=request.getParameter("getV");
username = new String(username.getBytes("ISO8859-1"),"utf-8");//根据你的tomcat里面的字符集进行对中文进行转换,将iso转换为UTF-8
out.print("获取的get请求:");
out.print(username);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
try {
out.close();
} catch (Exception e2) {
e2.printStackTrace();
// TODO: handle exception
}
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Content-Type", "text/html;charset=UTF-8");//设置UTF-8的显示页面的类型和字符集
request.setCharacterEncoding("utf-8"); //设置通过post方法进行传参的字符集
PrintWriter out=response.getWriter();
try {
out.print("获取的Post请求:");
out.print(request.getParameter("postV"));
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
try {
out.close();
} catch (Exception e2) {
e2.printStackTrace();
// TODO: handle exception
}
}
} }
Servlet中文乱码问题解决办法的更多相关文章
- 关于jFinal开发中遇到的中文乱码问题解决办法
关于jFinal开发中遇到的中文乱码问题解决办法 设置tomcat的编码,修改 <Connector port="8080" protocol="HTTP/1.1& ...
- IntelliJ IDEA 中文乱码问题解决办法
自己最近在使用IntelliJ IDEA,发现总是出现中文乱码的问题,在网上找了很多教程,发现真是“天下文章一大抄”.还不如自己动手试着解决一下. 1.编辑器以及调试信息中文乱码问题 解决方案: 选择 ...
- Linux下Birt、JTreeChart中文乱码问题解决办法
Linux下JTreeChart,Birt等报表工具显示中文乱码解决 1) 现象: 在Windows上生成的报表图片展示正常,但是在Linux上显示(怪异的小方块“口”): 2)问题定位: 这是lin ...
- idea控制台中文乱码问题解决办法
解决办法: 打开Intellij的安装的bin目录(D:\Program Files\JetBrains\IntelliJ IDEA 14.0\bin ),找到上图的两个文件(根据你的系统是32位或6 ...
- mac中的myeclipse的控制台中文乱码问题解决办法
之前写java用到控制台的主要是字符和数字,中文输入貌似真的还没用过,所以就遇到了一个悲剧的老问题,估计每个程序员都会遇到——中文乱码. 用的是MyEclipse开发环境,Window->Gen ...
- SmartUpload控件 中文乱码问题解决办法
(乱码一般是三码不统一,但是当我们使用插件的时候,我们页面,后台,还有插件之间的转码不一定统一,导致了乱码这一问题) 首先,SmartUpload 的使用网上多的很,在这里就不在赘述,主要解决为什么乱 ...
- 转】MySQL客户端输出窗口显示中文乱码问题解决办法
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4008095.html 感谢! 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显 ...
- MySQL客户端输出窗口显示中文乱码问题解决办法
最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码,如下图所示:
- python读写csv时中文乱码问题解决办法
https://www.cnblogs.com/shengulong/p/7097869.html 参考1 参考2 参考3 CSV是英文Comma Separate Values(逗号分隔值)的缩写, ...
随机推荐
- mysql主从同步(4)-Slave延迟状态监控
mysql主从同步(4)-Slave延迟状态监控 转自:http://www.cnblogs.com/kevingrace/p/5685511.html 之前部署了mysql主从同步环境(Mysql ...
- Linux指令--rcp,scp
rcp代表"remote file copy"(远程文件拷贝).该命令用于在计算机之间拷贝文件.rcp命令有两种格式.第一种格式用于文件到文件的拷贝:第二种格式用于把文件或目录拷贝 ...
- Python用户输入和代码注释
一.用户输入 若你安装的是Python3.x版本,当你在Python IDLE(编辑器) 中输入以下代码: name = input('用户名:') print('Hello',name) 保存并执行 ...
- Bootstrap fileinput:文件上传插件的基础用法
官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...
- 【转】新手该如何学python怎么学好python?
1)学好python的第一步,就是马上到www.python.org网站上下载一个python版本.我建议初学者,不要下载具有IDE功能的集成开发环境,比如Eclipse插件等. 2) 下载完毕后,就 ...
- [C#] 获取计算机内部信息 - ComputerInfoHelper
获取计算机内部信息 - ComputerInfoHelper 电脑有许多信息,如名称.CPU 和硬盘容量等,整理一个 Helper 来获取,下面目前只整理了一个方法,获取其它信息的方法类似. 一.代码 ...
- HTML5详解(一)
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. HTML5的介绍 Web 技术发展时间线 1991 HTML 1994 ...
- 覆盖equals()时总要覆盖hashCode()
覆写如下: public class User{ private Integer id; private String userName; private String passWord; publi ...
- 已知有两个水杯,一个11L一个7L,水可以任意使用,求怎么得到2L 的详细解法
问题:有两个水杯,一个是11L一个是7L,水可以随便用,怎么得到2L 1.了解问题的本质 问题中给出了两个杯子,只有这两个杯子有量度,所以只能让杯中的水满进满出才能确定杯子中最后有多少水. 现在问题要 ...
- Django REST framework反向生成url
Django REST framework是一个基于Django的框架,REST framework又是怎么反向生成url的呢?? 在前面的例子中,知道在REST framework中有6种版本控制的 ...