url 传递中文参数乱码问题

jack_liu4Ye 2010-04-14 11:02:34
function getOutLawMessage(){
var outLawNum = $("#outLawNum").val();
var outLawName = $("#outLawName").val();

var birthday = $("#birthday").val();
var nickName = $("#nickName").val();
var caseNumber = $("#caseNumber").val();
var caseCateUuid = $("#caseCateUuid").val();
document.getElementById("list_message_iframe").src="/oaw/view/department_menu/search_outlaw_message.do?outLawNum="+outLawNum+"&outLawName="+outLawName+"&birthday="+birthday+"&nickName="+nickName+"&caseNumber="+caseNumber+"&caseCateUuid="+caseCateUuid;
}



其中有中文的参数,但传递到action里变成了???,不知道该怎么解决!!!
...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
czmchen 2010-04-15
  • 打赏
  • 举报
回复
我在迅雷这里看到这个地址大多是中文的,好像以下为例
页面是这个页面
http://119.147.41.16/down?cid=2074ACACEF7A1943ECC6365AAD1EA3F83AA34D78&t=4&fmt=flv&usrinput=%B0%D6,%C4%E3%BA%C3%C2%F0%A3%BF&dt=2098000&ps=640_360&rt=584kbs&plt=6427&spd=2

它下载电影URL是中文的,可是这样也可以传递,这种方式是怎么传递过去的?这个没有搞URLDecoder

ftp://3e:3e@m1.3edyy.com:1461/【3E电影院www.eee4.cc】爸,你好吗?[DVD中字无水印].rmvb

难道Thunder改服务器的URL编码配置?
zings 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 redlotus_lyn 的回复:]
1.encodeURI()进行转换
2.在action使用URLDecoder.decode()再转换。
[/Quote]
页面链接时中文处理的一般方法。。
cxxcheng 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 redlotus_lyn 的回复:]
1.encodeURI()进行转换
2.在action使用URLDecoder.decode()再转换。
[/Quote]
同意
cxxcheng 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xihui912 的回复:]
1.增加过滤类
2.修改tomcat配置
3.页面编码一致
[/Quote]
同意
sdut_akaliusi203 2010-04-15
  • 打赏
  • 举报
回复
6楼说的很好。 post过去。 struts 吧。要传递的中文名,放在表单元素 hidden 中,用脚本给这个hidden元素赋值,然后提交这个表单。比如说你要传个name 。可以在页面中定义 <input type="hidden" name="filenames"id="filenames" > 提交这个表单时,对应的后台中直接 request.getParameter("filenames");
get 方式提交的,可以用脚本两次编码,注意是2次编码,具体原因我不是很清楚url="/login.do?username="+name;------>url="/login.do?username="+encodeURI(encodeURI(name);后台action解码就好了,action中导入import java.net.URLDecoder; 数据不是装进formbean了么,现在再装换过来。先从formbean中取数据,然后String name=URLDecoder.decode(username,"utf-8"); 使用解码时注意选择抛异常或者用try catch包起来。
redlotus_lyn 2010-04-14
  • 打赏
  • 举报
回复
1.encodeURI()进行转换
2.在action使用URLDecoder.decode()再转换。
xihui912 2010-04-14
  • 打赏
  • 举报
回复
1.增加过滤类
2.修改tomcat配置
3.页面编码一致
jack_liu4Ye 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yetaodiao 的回复:]
url编码就行了

<%
request.setAttribute("name","你好");
%>

<html:link action="" paramId="username" paramName="name"> url编码</html:link>
[/Quote]

不知道怎么编码呢!!!
  • 打赏
  • 举报
回复
url编码就行了

<%
request.setAttribute("name","你好");
%>

<html:link action="" paramId="username" paramName="name"> url编码</html:link>
lipeng8821 2010-04-14
  • 打赏
  • 举报
回复
这样会过滤掉一些 特殊字符。。比如+号之类的。。

如果是提交大量内容 用iframe隐藏提交比较好。
xiaoguan_Java 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 redlotus_lyn 的回复:]
1.encodeURI()进行转换
2.在action使用URLDecoder.decode()再转换。
[/Quote]
同意该楼所说
AreFlying 2010-04-14
  • 打赏
  • 举报
回复
jsp页面这样改:
function getOutLawMessage(){
var outLawNum = encodeURI($("#outLawNum").val());
var outLawName = encodeURI($("#outLawName").val());

var birthday = encodeURI($("#birthday").val();
var nickName = encodeURI($("#nickName").val();
var caseNumber = encodeURI($("#caseNumber").val();
var caseCateUuid = encodeURI($("#caseCateUuid").val();
document.getElementById("list_message_iframe").src="/oaw/view/department_menu/search_outlaw_message.do?outLawNum="+outLawNum+"&outLawName="+outLawName+"&birthday="+birthday+"&nickName="+nickName+"&caseNumber="+caseNumber+"&caseCateUuid="+caseCateUuid;
}


最后再接收是用
String parm = new String(request.getPremates("parematename").getBytes("ISO-8859-1"),"UTF-8");

dinghun8leech 2010-04-14
  • 打赏
  • 举报
回复
如果可以的话,还是改成post的吧。
ie6使用url传中文在转码正确的情况下仍会出乱码。
liuyong_kobe 2010-04-14
  • 打赏
  • 举报
回复
再参数的前面加上encodeURI()方法,再到Action 中把字符串转换一下
String str=new String(request.getPremates("name").getBytes("ISO-8859-1"),"UTF-8");


67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧