链接中包含中文字符串,使用Server.UrlEncode编码,当中文字符串中包含空格时,编码好像变的不对,“ ”-->“+”,如何解决呢?
感觉上应该还有其他的字符不能正常编码?
请问中文字符串的编码如何操作最好?("gb2312"下)

解决方案 »

  1.   

    错了,Server.UrlEncode不是这样用的,应该用Server.UrlPathEncode
      

  2.   

    我是链接到服务器的某个中文文件名的文档,urlpathencode我试过了,就连正常的文件名都不能显示了
      

  3.   

    我是这样用的Server.UrlEncode("文件名.doc")
    只编码文件名
      

  4.   

    虽然不能显示,但是下载没问题吧?而用Server.UrlEncode会提示404错误。就是因为它把中文编码了,所以文件名不能正确显示了。这是正常的。
      

  5.   

    直接更改web.config文件吧。<globalization 
    requestEncoding="gb2312" 
    responseEncoding="gb2312" 
    />
      

  6.   

    感谢两位,我的web.config已经是gb2312,而且我用UrlPathEncode是浏览下载都无法使用
      

  7.   

    我用Server.UrlEncode可以正常使用,只要文件名中不包含空格
      

  8.   

    你可以考虑下面的方法:
    使用urlEncode编码字符串之后使用Replace替换之。比如:
    string s = "sdfsdf dsf ";
    string b = Server.UrlEncode(s);
    b = b.Replace("+","%20");
      

  9.   

    直接在 web.config 用gb2312 替换utf-8 也不用Server.UrlEncode 这样烦琐的使用拉,实践证明utf-8 是垃圾