URL转义

在处理一些url的时候常常会出现一些让人意想不到的情况,比如:当图片的链接中有空格的时候,

this.src='http://img.cits-sh.com/UploadImgs/beihaidao20/beihaidao-big (7).jpg'

这并没有任何问题,只是命名存在不合理,浏览器也能正常解析url:

http://img.cits-sh.com/UploadImgs/beihaidao20/beihaidao-big%20(7).jpg

我们发现空格被替换成了%20,但是如果你尝试将url做其他操作的时候,很可能会出现404链接:

<img src="/images/grey.gif" data-original=@string.Format("{0}{1}", apiUrl,url)/>

这时候的url会变成这样:

data-original="http://img03.store.sogou.com/net/a/04/link?appid=100520033&w=390&url=http://img.cits-sh.com/UploadImgs/beihaidao20/beihaidao-big" (7).jpg

这个时候可想而知,图片是没办法正常地显示了。

ASP.NET中解决办法也很简单:

<img src="/images/grey.gif" data-original=@string.Format("{0}{1}", apiUrl, Url.Encode(url))/>

以下是常见转义符:

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

另外介绍一个很好用的图片自适应剪裁api地址:"http://img03.store.sogou.com/net/a/04/link?appid=100520033&w=390&url

通过设置w的值,你的图片会自动等像素或比例缩放。

原文地址:https://www.cnblogs.com/coce/p/5046529.html