您的位置:首页 > 其它

提交链接时候中文转码以及回车替换

2012-12-19 11:14 134 查看
function printNotice(noticeId,template){
if (noticeId == '' || noticeId =='null') {
alert('请保存后重试。');
}else{
var noticeOrgName='${taskNoticesDTO.agency}';
var noticeOrgNo='${taskNoticesDTO.taskNo}';
var noticeContent=document.getElementById("note").innerHTML.replace(/[\r\n]/g,"<br>");
var noticeDate='<s:date name="taskNoticesDTO.decideDate" format="yyyy-MM-dd"/>';
alert(noticeContent);
var url='${pageContext.request.contextPath}/xxx/noticeView.jsp?FileType=.doc&EditType=1&Template='+template+'¬iceOrgName='+encodeURIComponent(noticeOrgName)+'¬iceOrgNo='+noticeOrgNo+'¬iceContent='+encodeURIComponent(noticeContent)+'¬iceDate='+noticeDate;
window.open(url, '_blank');
}
}

到另外 的一个页面也需要进行替换那些回车换行回来

var noticeContent='<%=noticeContent   %>'.replace(/\<br>/g,"\r");

提交转码参考下面

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a& gt;');</script>

2、 进行url跳转时可以整体使用encodeURI

例如:Location.href="/encodeURI"("http://cang.baidu.com/do/s?word=百度&ct=21");

3、 js使用数据时可以使用escape

例如:搜藏中history纪录。

4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

根据说明 我需要的是encodeURIComponent函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐