YYW'S BLOG

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

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

Posted on 2008-01-14 20:58  阿武  阅读(1825)  评论(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