简单的方式(2.在后台通过解码来接收该中文参数
) :
在url里面的中文不受你上面设置的编码的限制,它是unicode格式传输的,跟服务器的编码相关,如果你把服务器的编码设置为utf-8或者gbk也可以解决。
在servlet.xml中的<Connector></Connector>中加上属性URLEncoding="gbk"
当你的传参是get传参数时
如果是有中文,如果你的传参形式是iso8859-1(默认是这个)
如果你页面显示是utf-8或gbk那么
取出参数时
可以这样转换:
String str = request.getParameter(参数);
str = new String(str.getBytes("iso8859-1"),'utf-8')//不一定是utf-8。看你页面显示用的编码
request.getParameter("pid");
String pname = request.getParameter("pname");
try {
String name = new String(pname.getBytes("iso8859-1"),"utf-8");
request.setAttribute("pname", name);
1、对要进行URL传递的中文字符进行编码:
String message = java.net.URLEncoder.encode("中文字符","utf-8");
2、在取URL传递中文的页面对字符进行解码:
String msg = request.getParameter("message");
String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");
--------------------------------------------------------------------------------------
注 1、这里得出的str就是先前传入的"中文字符"。
2、为什么要对取出的字符集形式转换成UTF-8形式,是因为ISO-8859-1是Java中网络传输使用的标准字符集,request.getParameter("message");得到的还是ISO-8859-1字符集,所以要转换一下。
二
哦,前几天看到有网友在问URLDecoder和URLEncoder方面的使用问题,突然想起,原来我刚遇到这两个类时,也觉得很神密,由此可以想想初学者的心情,于是便有了今天的这篇文章.
其实,这两个类的使用并不复杂,URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencodedMIME字符串之间的转换,一般的人会以为后一个字符串比较专业,以为有什么高深的知识,其实不然.
public class URLDecoderTest
{
}