src='<%# DataBinder.Eval(Container.DataItem, "ImagePath") %>在GRIDVIEW中,显示英文名的图片没问题,显示中文名的图片就显示不了,怎样修改?

解决方案 »

  1.   

    看看运行后的HTML代码,能贴出来看一下?
      

  2.   

    运行后的HTML代码:
    src='uploadfile\200712179181984\国内_图片_abc_200712179183250S.jpg'
      

  3.   

    试试:
    src='<%#  System.Web.HttpUtility.UrlEncode(DataBinder.Eval(Container.DataItem,"ImagePath").ToString(),System.Text.Encoding.GetEncoding("utf-8"))%>'
      

  4.   

    首先,要看你的数据库中对应的中文名图片的名字是不是中文;
    其次,检查一下,你存放图片的文件夹 中是不是真的有那个对应的图片;
    再次,检查你的 ”ImagePath“ 路径是不是正确;
    因为我测试过,如果没有发生不出现图片的问题;你也可以只存放文件名也可以,如果只是文件名,那你就这个方法:(你的图片存在了一个名为“imgs”的文件夹中)
    <ItemTemplate>
    <img src='<%# DataBinder.Eval(Container.DataItem,"Pimg","imgs\\{0}")%>'>
    </ItemTemplate>
      

  5.   

    你可以设置aspx的编码成"utf-8"试试楼主,你这个是属于IE的问题.
    默认情况下,IE浏览,如果是非英语字符的路径和图片,就会不识别.所以最好不用中文路径和中文名称
      

  6.   

    在webconfig里添加    <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"></globalization>
    那是因为编码格式要换成gb2312
      

  7.   

    src=' <%#   Server.HtmlEncode((string)DataBinder.Eval(Container.DataItem,   "ImagePath"))   %>
    编码问题,看看这样的呢
      

  8.   

    如果你使用的是IIS5请往下看,我以前做一个下载程序的时候遇到一个类似的问题,我觉得这个问题和你的问题应该是同一个原理。我遇到的问题是这样的,当IIS上报存的是奇数字数的中文文件名时,可以正常下载,并且客户端的中文文件名也是正确的,但是如果是偶数的文件名则会出现乱码。你可以参考http://www.microsoft.com/china/community/chat/chatrecord/chat20030522.mspx。1. HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\FavorDBCS = 0. 
    2. Restart the server.这是IIS5的一个bug,如果使用IIS6则没有这个问题!