我们经常想把网站上一些精彩的图片另存为, 但有时候去会遇到只能存为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(":"), ":"));
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>
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