注册 X
我已阅读并同意  服务条款
首页 > IT技术笔记 > 查看笔记

url参数中有+、空格、=、%、&、#等特殊符号的问题解决

url参数中有+、空格、=、%、&、#等特殊符号的问题解决

解决办法
将这些字符转化成服务器可以识别的字符,对应关系如下:
URL字符转义

用其它字符替代,或用全角的。

+    URL 中+号表示空格                                 %2B   
空格 URL中的空格可以用+号或者编码             %20 
/   分隔目录和子目录                                     %2F     
?    分隔实际的URL和参数                              %3F     
%    指定特殊字符                                         %25     
#    表示书签                                                %23     
&    URL 中指定的参数间的分隔符                   %26     
=    URL 中指定参数的值                                %3D


点击复制

	/*特殊字符解码
	 * + URL 中+号表示空格 %2B 
	 * 空格 URL中的空格可以用+号或者编码 %20
	 * / 分隔目录和子目录 %2F 
	 * ? 分隔实际的URL和参数 %3F 
	 * % 指定特殊字符 %25 
	 * # 表示书签 %23 
	 * & URL 中指定的参数间的分隔符 %26 
	 * = URL 中指定参数的值 %3D
	 */
	public static String decodeStr(String str) {
		str = str.replaceAll("44F", "-");
		str = str.replaceAll("%2B", "+");
		str = str.replaceAll("%20", " ");
		str = str.replaceAll("%3F", "?");
		str = str.replaceAll("%23", "#");
		str = str.replaceAll("%26", "&");
		str = str.replaceAll("%3D", "=");
		str = str.replaceAll("%2F", "/");
		str = str.replaceAll("%RR", "
");
		str = str.replaceAll("%NN", "
");
		//str = str.replaceAll("%25", "%");
		return str;
	}
	//特殊字符编码
	public static String encodeStr(String str) {
		str = str.replaceAll("-", "44F");
		str = str.replaceAll("
", "%NN");
		str = str.replaceAll("
", "%RR");
		str = str.replaceAll("\+", "%2B");
		str = str.replaceAll(" ", "%20");
		str = str.replaceAll("\?", "%3F");
		str = str.replaceAll("#", "%23");
		str = str.replaceAll("&", "%26");
		str = str.replaceAll("=", "%3D");
		str = str.replaceAll("/", "%2F");
		//str = str.replaceAll("%25", "%");
		return str;
	}			
		

 打赏        分享



评论