简单的方式(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字符集,所以要转换一下。