首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

通过地址传中文参数乱码有关问题

2012-01-20 
通过地址传中文参数乱码问题http://localhost:8080/BBS/article.jsp?sort_id1&sort_name刘德华比如我传

通过地址传中文参数乱码问题
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);
%>

这样就没问题了...

热点排行