URL 传递特殊字符到后台的解决办法

来源:互联网 发布:17网络用语 编辑:程序博客网 时间:2024/06/01 22:55

今天项目中遇到需要向后台传递特殊字符的问题;

开始用的是js 的 encodeURI在前台进行编码 在后台用URLDecoder.decode()进行解码;

查看jquery的api

定义和用法

encodeURI() 函数可把字符串作为 URI 进行编码。


该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:

;/?:@&=+$,#


如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码


但是项目中需要传递的特殊字符包含了 @#$等

解决办法:

先对字符串进行replace的操作 再进行encodeURI的操作

searchword = searchword.replace(/\%/g,"%25").replace(/\#/g,"%23").replace(/\&/g,"%26").replace(/\+/g,"%2B");

encodeURI(searchword );

这样就就可以解决了。之前没有发现encodeURI会有不编译的字符

特殊字符编码对照表


1 0