YYW'S BLOG

知识的分享就是知识的获得
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

网站上图片"另存为" 为什么是 bmp 格式

Posted on 2008-01-14 20:58  阿武  阅读(1853)  评论(4)    收藏  举报

    我们经常想把网站上一些精彩的图片另存为, 但有时候去会遇到只能存为bmp格式的情况, 难道是该站点为了防止图片被别人另存为而使用了什么阴招吗? 真是太可恶了.  不过还好, 此招数也只针对IE, 对ff的用户没有影响.

    不过今天终于找出了问题所在, 看看两张养眼的美女图先, 哦, 不, 只是一张.
 
 
 图1 中文.gif
 图2 abc.gif

    大家可以试试另存为, 看看结果, 记得要使用IE哦. 在这我里是第一张图片只能另存为 bmp格式, 名称默认为"无标题", 第二张正常, IE6跟IE7都有这问题. 看到这里聪明的读者应该可以看出些许端倪了吧, 没错, 就是中文的问题, 当图片URL路径中包含中文的时候就不能正常另存为.

    知道了问题的原因, 问题自然好解决了. 在客户端可以使用ff或者下载工具来下载, 甚至可以在IE临时文件夹里找, 服务器端的一行代码就可以搞定,
C#
String str = "http://yyw.genecool.com/20080114/中文.gif";
Console.WriteLine(System.Web.HttpUtility.UrlEncode(str).Replace(
        System.Web.HttpUtility.UrlEncode(
"/"), "/").Replace(System.Web.HttpUtility.UrlEncode(":"), ":"));

javascript
<script type="text/javascript">
    alert(encodeURI(
'http://yyw.genecool.com/20080114/中文.gif'));
</script>

输出: http://yyw.genecool.com/20080114/%e4%b8%ad%e6%96%87.gif

来源: http://yyw84.cnblogs.com