在处理一些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的值,你的图片会自动等像素或比例缩放。

URL转义的更多相关文章

  1. urlencode($url):把url转义,当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符串的

    1.对url进行编码转义

  2. javascript进行url转义方法比较escape、encodeURI和encodeURIComponent

    escape会将除了 ASCII 字母.数字和特定的符号(* @ - _ + . /)以外的字符全部进行转义编码,因此如果想对URL编码,最好不要使用此方法,因为它会让你的URL变的不可读. 提示:E ...

  3. javascript之url转义escape()、encodeURI()和decodeURI()

    我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因 ...

  4. javascript之url转义escape()、encodeURI()和decodeURI(),ifram父子传参参数有中文时出现乱码

    ifram父子传参参数有中文时出现乱码,可先在父级页面用encodeURI转义,在到子页面用进行decodeURI()解码 我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对 ...

  5. URL转义特定字符

    import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.Charset; // 实例代码 Str ...

  6. 【Android开发】URL 转义与反转义

    1,转义 @org.junit.Test public void testEncode(){ String url="http://192.168.0.19:8888/cas/login&q ...

  7. javascript之url转义escape()、encodeURI()和encodeURIComponent()

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  8. php url字符转义操作

    遇到一段代码,从数据库里读出来带 \ 字符 需要转义成中文~ 用到url_decode(); //$info 为刚从数据库中读取的二维数组 foreach($info as $key1 => & ...

  9. html、javascript、url特殊字符的转义诠释及使用方法详解

    html.javascript.url特殊字符转义在实际编程中都是有用到的,有的人对特殊字符转义的使用不是很清楚,下面就对html,javascript,url特殊字符的转义做一下说明和归纳. htm ...

随机推荐

  1. JSON 字符串中的中括号和大括号区别详解

    json 变量有两种可能, 可能是一个对象, (类似 类的实例), 也可能是一个数组!! 主要是要 从 ""语义" 上来分析, 到底该用 大括号还是用中括号: 如果从语义 ...

  2. IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

    IntelliJ IDEA 乱码解决方案 (项目代码.控制台等) 最近IDE从eclipse改成IntelliJ IDEA 了,原因是公司大部分人都在用这个IDE,而且一直推荐用,所以尝尝鲜.换的第一 ...

  3. C#事件学习

    通过代码触发事件(第10章).由对象触发的事件(Timer每隔Interval指定时间,就触发Tick事件,第8章使用Timer). 目录: 避免递归事件 访问对象的事件 使用事件参数 创建事件处理程 ...

  4. redux的中间层 --reactjs学习

    React只负责UI层,也就是我们通常在MVC框架中 所说的View层,所以在使用React开发中 我们得引入Redux 负责Model 一开始学习Redux的中间层 有点 摸不到头, 其实只要你注意 ...

  5. JSHint配置项说明

    转自:http://www.jianshu.com/p/4cb23f9e19d3 什么是JSHint? 官方网站这样介绍: JSHint, A Static Code Analysis Tool fo ...

  6. 提高Axure设计效率的10条建议

    http://www.woshipm.com/ucd/92153.html Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有 ...

  7. 基于Calabash-andriod的UI自动化测试(1)-环境和原理

    有时候,一些覆盖happy path的UI自动化还是很有用的.它的一些作用如下: 1.可以迅速实现端到端的功能回归,能够覆盖接口测试覆盖不到的一些地方,如GUI层和接口层的交互产生的问题. 2.非码农 ...

  8. C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)

    一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...

  9. (转)C#为什么要使用Invoke,它和BeginInvoke有什么区别

    在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate. 一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是do ...

  10. Django-跨站请求

    //用户验证Tonken 在Html 中 设置一个Token {% csrf_token %} //在代码Views.py 中返回值添加 context_instance=RequestContext ...