现在在我的网站下有
http://www.51metro.com.cn/images/StaInfo/人民广场1.jpg
这样一个文件在IE上输入以上地址无法显示该图片。将“人民广场1”URL编码后(使用System.Web.HttpUtility.UrlEncode方法)的字符串为“%e4%ba%ba%e6%b0%91%e5%b9%bf%e5%9c%ba1”,所以我认为http://www.51metro.com.cn/images/StaInfo/%e4%ba%ba%e6%b0%91%e5%b9%bf%e5%9c%ba1.jpg这个地址可以访问,但不行!真正可以访问的却是这个地址:http://www.51metro.com.cn/images/StaInfo/%C8%CB%C3%F1%B9%E3%B3%A11.jpg大家可以试试,我想知道为什么URL编码后的地址为什么和真实可以访问的地址不一样,该如何解决这个问题

解决方案 »

  1.   

    只对后面汉字进行url编码试一下?
      

  2.   

    文件名用字母或数字好些,中文常有BUG
      

  3.   

    猜想应该是中文编码问题, 首先将这个URL字符串转换成GB2312编码试试. 如果不指定, 一般都是UTF8编码的, 汉字编码不同造成不一致. 
      

  4.   

    这个应该是服务器上的设置问题.解决方法:  方法一:  
    Regedt32.exe  
    ①HKLM\\System\\CurrentControlSet\\Services\\InetInfo\\Parameters\\FavorDBCS  =  0。  
    ②重启计算机。  
    方法二:  
    在程序中自行控制  '转换双字节字符为合法的URL传输字串      
    function    getUrlEncodel(byVal    Url)      
         Dim    i,code      
         getUrlEncodel=""      
         if    trim(Url)=""    then    exit    function      
         for    i=1    to    len(Url)      
                         code=Asc(mid(Url,i,1))      
                         If    code<0    Then    code    =    code    +    65536      
                 If    code>255    Then      
                                 getUrlEncodel=getUrlEncodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)      
                         else      
                                 getUrlEncodel=getUrlEncodel&mid(Url,i,1)      
                         end    if      
         next      
    end    function  
    方法三:  
    IE-internet选项-高级-将“始终以utf-8方式发送”选项去掉。  说明:  以此上排序决定该方法的优劣性,最好采用方法一。
    -----------------------------------------------
    方法四:将中文名字全都改成英文名字,这个办法绝对可以解决这个问题!