url传递中文的解决方案

原创 2007年10月05日 15:04:00
Jsp页面使用URL编码传递中文参数的情况下,在参数的解析过程中会出现乱码。由于java在设计的时候考虑到了国际化的问题,在java源程序编译成字节码的时候默认使用的是UTF-8编码。而在web运用上,由于不同的浏览器向服务器发送的信息采用的编码方式不同,在由像tomcat之类的服务器解码的时候会由于编码方式的不同而产生乱码,这是一个会困扰jsp初学者很久的问题。以前在使用struts的时候不需要处理这些问题,前些天在做一个简单的jsp页面的时候碰到这个问题。经过半天的摸索,基本解决了该问题。
例子中a.jsp页面通过URL编码的方式传递中文参数,在b.jsp中对该参数进行解析。
a.jsp源代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
 
<body>
<% 
       String str_test = "华工";
%>
<form method=post action="b.jsp?test=<%=java.net.URLEncoder.encode(str_test) %>"> 
         <input type="submit" value="Submit" name="提交">  
 </form>
 
</body>
</html>
 
b.jsp源代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
 
<body>
 
<%
       String str = new String(request.getParameter("test").getBytes("ISO8859_1"));
%> 
 <BR>
 <%=str %>
</body>
</html>
说明:在使用了java.net.URLEncoder.encode 编码后,页面获取参数request.getParameter后需要使用ISO8859_1编码转换。此外,在jsp的字符集声明中把charset=UTF-8也没有问题。

Java web的URL地址参数传递中文乱码的解决方案

系统很多Url地址都暴露给用户,存在安全隐患,用户可以去随意修改Url地址和参数值,为了解决这个问题提供以下解决方案,具体步骤如下: 第一步:编码URL地址,调用CommonMethod.js的re...
  • JackQuery
  • JackQuery
  • 2017年02月07日 15:00
  • 1183

关于JAVA中URL传递中文参数,取值是乱码的解决办法

简单的方式(2.在后台通过解码来接收该中文参数 ) : 在url里面的中文不受你上面设置的编码的限制,它是unicode格式传输的,跟服务器的编码相关,如果你把服务器的编码设置为utf-8或者gb...
  • q1054261752
  • q1054261752
  • 2016年09月06日 21:35
  • 4593

解决get方法传递URL参数中文乱码问题

应用一:解决tomcat下中文乱码问题(先来个简单的)  在tomcat下,我们通常这样来解决中文乱码问题: 过滤器代码: package filter;      import java....
  • yin767833376
  • yin767833376
  • 2016年05月30日 13:33
  • 6387

ASP.NET中url传递中文的解决方案

  • 2010年07月26日 17:43
  • 3KB
  • 下载

Java web的URL地址参数传递中文乱码的解决方案

系统很多Url地址都暴露给用户,存在安全隐患,用户可以去随意修改Url地址和参数值,为了解决这个问题提供以下解决方案,具体步骤如下: 第一步:编码URL地址,调用CommonMethod.js的re...
  • JackQuery
  • JackQuery
  • 2017年02月07日 15:00
  • 1183

ASP.NET中url传递中文的解决方案

一般有3种方法: 1.设置web.config文件   ......    ......    2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。  >> 进行传递...
  • nieweiking
  • nieweiking
  • 2014年08月29日 00:38
  • 419

url传递中文的解决方案总结

1.设置web.config文件。(我不喜欢设置成这样)    ......    ......    或者: aspx文件中: 2.传递中文之前,将要传递的中文参数进...
  • zhanzkw
  • zhanzkw
  • 2011年08月05日 15:41
  • 278

Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案

一、首先,说一下我要实现的功能     根据老师ID、学年、学期,查询该教师教授的课程信息。 二、传递参数我遇到的问题:     我通过传递教师ID、学年和学期从数据库查询出该教师...
  • mazhaojuan
  • mazhaojuan
  • 2013年01月31日 10:12
  • 7008

Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案

一、首先,说一下我要实现的功能     根据老师ID、学年、学期,查询该教师教授的课程信息。 二、传递参数我遇到的问题:     我通过传递教师ID、学年和学期从数据库查...
  • u014622411
  • u014622411
  • 2014年11月18日 09:58
  • 824

js获取url中文乱码问题解决方案

js合成url时,如果参数是中文,传到struts2中会乱码,解决办法如下: 1.js文件中使用encodeURI()方法(必须套两层)。 login_name = encodeURI(encod...
  • ct637337
  • ct637337
  • 2015年09月08日 19:56
  • 420
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:url传递中文的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)