java URLEncoder URLDecoder 和js encodeURI

本文介绍了解决中文在URL中传输时出现乱码的问题,详细解释了如何通过JavaScript和Java进行正确的编码与解码操作,确保跨平台数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

个人理解中文传送的时后需要转码:

js代码:
要进行两次转码才不会出现乱码(默认为UTF-8)
encodeURI(encodeURI(http://localhost/qq/index.jsp?title=专业));


java接收参数代码:
	String title = request.getParameter("title");
	title = URLDecoder.decode(title, "UTF-8");


java 编码:
  http://localhost/qq/index.jsp?title=URLEncoder.encode(URLEncoder.encode(title,"UTF-8"));


本地开发时候没有乱码,可是到linux中出现乱码, 下面是解决的方法, 但没有找到乱码的原因,以下作为使用记录。 

	1传递中文
		parent.location.href=queryURL+"?title="+encodeURI(encodeURI(title ) );
	
	2 有存在iframe,则decode参数,后传递数据。
		<%
			String title = request.getParameter("title");
			if(title !=null ){
				title = java.net.URLDecoder.decode(title, "UTF-8");
   //如果这里还是乱码则用下面的方法转码
// title=new String(title.getBytes("GBK"),"ISO8859-1");
			}
		%>
		<iframe height="530" width="100%" src="newsList${ suffix}?c2str=${c2str}&tabid=1&title=<%=(title!=null?title:"")%>&area=${ !empty param.area? param.area:'' }" id="newsList" scrolling="no" frameborder="0"></iframe>

	3第三个页面接收数据再次转码
	title = URLDecoder.decode(URLDecoder.decode(title, "UTF-8") ,"UTF-8") ;
 



作为个人记录用。

 

 

 在编码与解码的时候要注意页面的编码也会影响到encode的编码结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值