URL转义符和XML转义符

本文详细介绍了在Web开发中遇到的URL转义字符问题及其解决方案,并对比了XML中的转义字符用法,帮助开发者正确处理特殊字符。

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

 在开发类似csdn树型结构时,左边树型结构的结点如果带两个参数时,不能正常显示,原因是不识别某些特殊符号,如:

'<node text="内部通信录" url="/Personnel/person_list.aspx?type=P&p_no=N" target="main" />'

这样写时系统不识别“&”,而无法正常显示

如果改为:

'<node text="内部通信录" url="/Personnel/person_list.aspx?type=P%26p_no=N" target="main" />'

就可以正常显示了,

 

 

一、URL转义符

web 开发中通过问号(?)方式在浏览器地址栏中传值时。浏览器是通过“&”来区分问号后的参数个数的。 如果出现传值参数中带有“&”时,在接受页面就会出现错误,类似如下请求路径:/next.jsp?param1=hendhs89&furej & param2=sss
参数param1中含有转义字符“&” ,这样会导致被请求页的参数接收错误。
在传值前 通过 java.net.URLEncoder.encode(param1) 编码处理后,可将转义字符转为16进制;
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23

......

            Dictionary<string, string> dict = new Dictionary<string, string>();
            dict.Add("@", "%40");
            dict.Add(":", "%3A");
            dict.Add(",", "%2C");
            dict.Add("+", "%2B");

            dict.Add(" ", "%20");
            dict.Add("/", "%2F");
            dict.Add("?", "%2B");
            dict.Add("%", "%25");
            dict.Add("#", "%23");
            dict.Add("&", "%26");
            dict.Add("=", "%3D");
            dict.Add("!", "%21");

            dict.Add("^", "%5E");
            dict.Add("`", "%60");
            dict.Add("{", "%7B");
            dict.Add("}", "%7D");
            dict.Add("|", "%7C");
            dict.Add("[", "%5B");
            dict.Add("]", "%5D");
            dict.Add("\"", "%22");
            dict.Add("<", "%3C");
            dict.Add(">", "%3E");
            dict.Add("\\", "%5");
            foreach (var item in dict)
            {
                Console.WriteLine(item.Key+"-----"+item.Value);
            }



二、在XML中的转义符又不一样:

字符        HTML字符    字符编码 
和(and) &   &amp;       &#38; 
单引号 '    &apos;      &#39; 
双引号 "    &quot;      &#34; 
大于号 >    &gt;        &#62; 
小于号 <    &lt;        &#60; 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值