一.Myeclipse设置新建.jsp文件的默认编码:
Windows---->Preferences---->myeclipse Enterprise Workbench---->File and Editors----->JSP--->把这个目录下的Encoding选为你要设置
二.中文乱码的解决方式:
1.设置过滤器
package com.hs.guofc.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharacterEncodingFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
//设置request字符编码
arg0.setCharacterEncoding("utf-8");
//传递控制到下一个过滤器
arg2.doFilter(arg0, arg1);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>com.hs.guofc.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三.JSP页面几个编码相关解释(转载)
<@ page language="java" contentType="text/html; charset=gb2312"
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>
servlet text: 中文
</body>
</html>
其中pageEncoding="utf-8"决定了jsp编译成servlet时所使用的编码,比如“中文”两个字将以utf-8的形式存储。但是如果jsp文本文件本身不是utf-8格式的,那么编译时就已经产生编码不一致的现象,因此无论怎样客户端显示的都是乱码。
-
pageEncoding="utf-8"与contentType="text/html; charset=gb2312"的编码无关,contentType告知浏览器该响应是以那种格式编码的,它是response header的一部分,默认情况下浏览器会直接以这种编码来解析这个来自于服务器端的响应,而不管响应的html是什么内容。响应内容的编码在这时已确定,客户端无法更改,可以变的只能是以何种编码格式去解析。
-
META属性content="text/html; charset=utf-8"只是一段html字符串,服务器端的响应内容,跟<body>、<script>之类的内容没什么两样,至于浏览器怎么去解读我们不去管它。正常情况下这个meta的charset应该设置为与contentType一致,避免查看客户的源代码时的误读。
- 如果服务端使用tomcat,且对URL参数的解析没有做任何特别处理,那么必然会导致中文乱码。因为客户端以Unicode编码传递参数,而tomcat默认使用ISO-8859-1来解析。比如?para=中文将会以?para=%E4%B8%AD%E6%96%87来传递,而tomcat中使用request.getParameter时却将E4转换成byte型,无法逆转。因此必须修改tomcat的配置。在server.xml中加入<Connector port="8080" ... useBodyEncodingForURI="true">,这样就可以通过显式地在jsp中指定编码类型来解析中文参数,如request.setCharacterEncoding("utf-8"),同时也说明这一句在没有修改tomcat配置的情况下是不起作用的。
分享到:
相关推荐
一些JSP乱码问题,及其解决方法。一些JSP乱码问题,及其解决方法。
jsp乱码问题,决解jsp乱码
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接时...
web项目中中文乱码问题总结,几解决方法。
JSP乱码问题的解决.doc
jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题jsp乱码jsp乱码问题...
1 最基本的乱码问题。 这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。 2 表单使用Post方式提交后接收到的乱码问题 3 表单get提交方式的乱码处理方式。 4 上传文件时的乱码解决 ...
概括了所有解决jsp乱码问题的代码!都尝试过了!很好用!
NULL 博文链接:https://tongqiuyan.iteye.com/blog/1120389
JSP乱码 N种解决方案
本方案解决了jsp常见的乱码问题 下载后查看详细内容
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。
java 中出现的乱码问题,包括jsp乱码,数据传输乱码等
利用过滤器解决JavaWeb(JSP)的乱码问题
讲述javaweb开发中的jsp乱码问题 get、post的区别 http协议的图解
JSP乱码解决方案大家可以看看,可以有利于大家,在JSP页面乱码问题,扥到更好的解决方案
jsp中文乱码的处理 页面显示 表单提交 数据库操作JSP中文乱码处理