中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
来源:互联网 发布:淘宝店铺首页轮播代码 编辑:程序博客网 时间:2024/05/23 19:29
======================================================
注:本文源代码点此下载
======================================================
来源:中文参数传递编码后传递乱码解决(java.net.urlencoder.encode)
使用java.net.urlencoder.encode()可以对要传递的中文进行编码
a.在传参数之前先把参数进行转码:java.net.urlencoder.encode(param);
取值时用语句java.net.urldecoder.decode(param);再转回中文
b.在你的tomcat目录-->conf目录-->server.xml里找出这段:
uriencoding="gb2312"
/>
简单示例程序如下:
">点击这里
jsp经过上面的处理之后,最后输出的html页面联结已经可以正常向服务器传递中文参数了。
下面我们阐述一下servlet里怎么接收/解析中文参数。
对于href="/someservlet?key=%e4%bd%a0%e5%a5%bd">你好之类的联结,我们可以用下面的servlet来解析传递过来的中文参数。
getasiacharservlet.java
import java.io.ioexception; import java.net.urlencoder; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; public class getasiacharservlet extends httpservlet {@override//redir?key=xxxxprotected void doget(httpservletrequest req, httpservletresponse res) throws servletexception, ioexception {string key = req.getparameter("key");key = new string(key.getbytes("iso-8859-1", "utf-8"));system.out.println(keyword);//...//重定向处理//res.sendredirect("http://www.google.com/search?q="+urlencoder.encode(key, "utf-8"));} }
我们注意到使用req.getparameter("key")得到参数后,还使用了new string(key.getbytes("iso-8859-1", "utf-8"))把iso-8859-1字符集形式转换成utf-8形式。
为什么呢?因为iso-8859-1是java中网络传输使用的标准字符集,req.getparameter("key")得到的还是iso-8859-1字符集,所以要转换一下才不会是乱码。
最后,顺便提一下,采用servlet重定向时,也需要对包含中文文字的参数做特殊处理。
例如,servlet从html页面的联结接受参数,然后重新定向到google搜索。
则可以在上面的getasiacharservlet里加上如下处理:
res.sendredirect("http://www.google.com/search?q="+urlencoder.encode(key, "utf-8"));
也就是说,需要把参数取出来,转换,再重新使用urlencoder.encode编码,这样就不会出现乱码现象。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- 中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
- 中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
- 中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
- 中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
- 中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
- 中文参数传递编码后传递乱码解决
- URLEncoder.encode与URLDecoder.docode传递中文参数编码与解码
- Java 传递参数 中文乱码解决
- 使用response.sendirect("html/employee.html?"+java.net.URLEncoder.encode(param.substri) 重定向传递参数,并隐藏跳转地址
- asp.net如何解决传递中文参数乱码问题
- java.net.URLEncoder.encode编码解码
- java.net.URLEncoder.encode编码解码
- java.net.URLEncoder.encode编码解码
- java 中解决url参数传递中文乱码问题
- 解决JAVA、.NET间WebService传递中文乱码的问题
- 解决url传递中文参数乱码问题
- 解决JS传递中文参数乱码问题
- 中文乱码在java中URLEncoder.encode方法要调用两次解决
- java 基础复习
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- Windows8开发指南(3)Windows8开发工具
- HTML中图文混合引发莫名空白问题研究
- 正确认识ajax!必读!
- 中文参数传递编码后传递乱码解决(java.net.URLEncoder.encode)
- AJAX简介(转)
- javascript事件监听
- 你真的懂HTML吗-从"最新闪存"说起
- 四种流行的AJAX框架jQuery,Mootools,Dojo,ExtJS的对比
- 有感于几位大大关于AJAX的讨论....
- Delphi - 使用字符串时,一个注意地方
- HTML DOM和XML DOM的区别
- 15 个非常值得收藏的HTML5资源