日期:2014-05-18  浏览次数:20787 次

通过地址传中文参数乱码问题
http://localhost:8080/BBS/article.jsp?sort_id=1&sort_name=刘德华
比如我传这样一个参数
而使用el表达式${param.sort_name}的最后一个字乱码  
http://localhost:8080/BBS/article.jsp?sort_id=1&sort_name=科比
而这样的话却正常 仿佛是偶数个字就正常
如何解决呢?

------解决方案--------------------
是tomcat吗?
是的话你在server.xml,就是配置端口的地方,你加一个属性
<Connector port="8055" URIEncoding="GBK"
就好了,也许你不是GBK,你也可以看你们用什么就写什么
------解决方案--------------------
並不是偶數就正常,參數以中文形式傳,很有可能出現亂碼問題的,最好是在傳的時候先把參數編碼一下
------解决方案--------------------
你把中文参数调用java.net.URLEncode编码一下
一般做开发时都不会直接用中文做参数传来传去的,很容易出编码问题。
------解决方案--------------------
探讨
是tomcat吗?
是的话你在server.xml,就是配置端口的地方,你加一个属性
<Connector port="8055"URIEncoding="GBK"
就好了,也许你不是GBK,你也可以看你们用什么就写什么

------解决方案--------------------
JScript code

//如果是js的话
 encodeURIComponent(areaname)
//一般情况下
在后台进行转码

------解决方案--------------------
用get方法传中文的话,一般需要对中文进行URL编码转换.
String errmsg="传递的中文";
response.sendRedirect("test1.jsp?errmsg="+java.net.URLEncoder.encode(errmsg));


接收参数文件
<%@ page language="java" pageEncoding="gbk"%>
<%
 
String errmsg=new String((request.getParameter("errmsg")).getBytes("ISO-8859-1"),"GBK");
out.print("errmsg="+errmsg);
%>

这样就没问题了...