JSP乱码问题 本帖最后由 dschencds 于 2010-03-24 10:33:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在页面上直接设置编码格式 <%@ page language="java" pageEncoding="UTF-8"%> 比如这样,也许可以 标头加上pageEncoding="UTF-8"页面就会报错 加上<%@ page contentType="text/html; charset=gb2312" %>也没效果 req.setCharacterEncoding("UTF-8"); <% response.setHeader("Pragma", "No-Cache"); response.setHeader("Cache-Control", "No-Cache"); response.setDateHeader("Expires", 0); %><%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>这样试试, 上面的可以不要 http://localhost:8080/pojo/MyJsp.jsp?user_name=%D4%F6%D6%B5%D2%B5%CE%F1%B2%BF我地址栏获取的值是这样的,就是需要把地址栏的值取到,任何方法都行,传过来的参数编码是UTF-8 哦,把那个发送和返回都设置一下吧,res.setCharacterEncoding("GB2312");req.setCharacterEncoding("GB2312");我当时是这样解决的,是在Java文件中写的啊! req.setCharacterEncoding("UTF-8");放在java 文件第一句jsp文件第一句<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>全部用UTF-8还有看下你的文件是什么格式的另存为改成UTF-8 把你的requst和 response编码统一下,再不行你试下 contactName=new String(contactName.getBytes("iso-8859-1"),"gbk"); 这种转下看看 可能你的Myeclipse安装后编码默认是GB18030,外面的人一般推荐用UTF-8。如果在导入项目后发现乱码现象,那是编码设置设置不对。 全局编码设置:编码设置的方法:ToolBar-->Window-->Preferences-->General-->Workspace-->Text file encoding,设置合适的编码。 res.sendRedirect("MyJsp.jsp?user_name="+URLEncoder.encode(username, "GBK"));你这转译了,取值的时候再用URLDecoder.decode()转译回来。 写一个过滤类然后web.xml配置下 方法如下:过滤类:package com.crm.common;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 UtfFiler implements Filter { public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("gbk"); chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }web.xml如下: <filter> <filter-name>utfFilter</filter-name> <filter-class> com.crm.common.UtfFiler </filter-class> </filter> <filter-mapping> <filter-name>utfFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Java与Jsp中的编码统一下试试。 将所有JSP页面里的三个字符集都统一成"gb2312"<% String s = request.getParameter("user_name"); String ss = new String(s.getBytes(),"gb2312"); %> 改写成:<% String s = request.getParameter("user_name"); String ss = new String(s.getBytes("ISO8859-1"),"gb2312"); %> 值反编译过来是没错,可是如果用request根据参数取值的话,取出来是乱码,请问该如何解决 说明你工程的编码格式就没有设置成UTF-8,而是默认的GBK。你检查一下吧 求解决一XML问题 jave与c++大家比较下 sql语句如何写? 求教一个spring事务超时控制的问题 java可重入锁一般用于什么样的情况? 怎么限制一个方法中传入的某个参数只能是int或者是String类型,我考虑的是枚举但是不知道这个枚举怎么写 ???高分求?? 金蝶面试题笔试题 北航 西电 东南 请进 孙鑫VC视频(完整共20课)换孙鑫java视频(完整) 有关RMI的问题 怎么用后台框架 springBoot 和前端 jquery与html 实现一个树形表格 求大佬们帮忙 JSP获取JS的值 jsp实现在线阅读pdf文件
response.setHeader("Pragma", "No-Cache");
response.setHeader("Cache-Control", "No-Cache");
response.setDateHeader("Expires", 0);
%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
这样试试, 上面的可以不要
我地址栏获取的值是这样的,就是需要把地址栏的值取到,任何方法都行,传过来的参数编码是UTF-8
req.setCharacterEncoding("GB2312");
我当时是这样解决的,是在Java文件中写的啊!
jsp文件第一句<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
全部用UTF-8还有看下你的文件是什么格式的
另存为改成UTF-8
全局编码设置:编码设置的方法:ToolBar-->Window-->Preferences-->General-->Workspace-->Text file encoding,设置合适的编码。
你这转译了,取值的时候再用URLDecoder.decode()转译回来。
过滤类:
package com.crm.common;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 UtfFiler implements Filter { public void destroy() {
// TODO Auto-generated method stub
} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
chain.doFilter(request, response);
} public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}web.xml如下:
<filter>
<filter-name>utfFilter</filter-name>
<filter-class>
com.crm.common.UtfFiler
</filter-class>
</filter>
<filter-mapping>
<filter-name>utfFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
String s = request.getParameter("user_name");
String ss = new String(s.getBytes(),"gb2312");
%> 改写成:<%
String s = request.getParameter("user_name");
String ss = new String(s.getBytes("ISO8859-1"),"gb2312");
%>
你检查一下吧