如何解决 jsp 中url传值的中文乱码问题
在jsp中,如果在url中传递中文时会出现乱码,在网上关于这一问题的解决方法五花八门,但都不是很奏效!其实解决方法非常简单: 第一步:编码(以传递的参数为str为例) 在传递数据前将str进行编码Java.net.URLEncoder.encode(str) 第二步:解码 在获取数据端将得到的数据进行解码 new String(str.getBytes("ISO8859_1"))
简单示例程序如下:
<%@ page contentType="text/html;charset=gb2312" %>
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%>">点击这里</a>
<%
//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null)
{
str=request.getParameter("url");
//下面是解码
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}
%>
相关文档:
JSP留言管理系统 (附加用户权限功能)
1.游客可以查看通过审核的留言;
2.普通用户登录后可以发表留言,修改密码;
3.管理员登录后可以审核、修改、删除留言;
4.超级管理员登录后可以管理用户,删除用户、修改密码、更改权限。
此留言管理系统包含以下文件:
1.首页(index.jsp):按发表时间倒序显示留言内容,不同权 ......
jsp的pageEncoding="UTF-8",struts的encoding="UTF-8",eclipse 的工作区间的编码方式是GBK,但是在struts的action中获得的jsp传来的中文中有乱码,使用new String(sysgkForm.getContent().getBytes("UTF-8"),"GBK")转码也不行,最后发现问题出在了jsp里面。加上contentType="text/html; charset=GBK" 就好了。
pageEncodi ......
我先说明一下配置环境的大概情况:
* FreeBSD 7.0-RELEASE
* apache-2.2.9
* mod_jk-ap2-1.2.26
* diablo-jdk-1.6.0.07.02
* tomcat-6.0.16
具体的版本信息显示如下:
freebsd# pkg_info
apache-2.2.9_5 Version 2.2.x of Apache web server&nbs ......
在项目中,我们经常遇到需要在jsp页面切换中传递中文字符。这主要有两种方式。
URL方式,例如:http://website/test1.jsp?act=add&type=苹果¶m=%20D%20B
FORM方式,例如:
<form name=test mehtod="post">
<input type=hidden name=text2 value="中文">
<input type=t ......
(1) 请求信息编码转化的Filter
importjava.io.IOException;
importjava.util.Enumeration;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
......