none
用HttpListener做WEB服务器时,post过来的值不能解码 RRS feed

  • 问题

  • 用表单向HttpListener发出post请求,其中的name是中文‘哥’,页面上显示出的是输出是%E5%93%A5,用URLDecode(“%E5%93%A5”)解码解不出来,还是乱码,难道这个不是URL编码的吗?应该怎么处理才能正确显示出中文呢?请指教!
    明月常来
    2010年10月30日 4:07

答案

  • 编码问题,.Net下默认是UTF8

    这个要看你客户端是用的什么编码发送的

    建议修改客户端,在发送前先做UrlEncode

     


    严格的说,.NET 对于 Web (如 ASP.NET,Http 开头的类型,WebClient 等) 的默认编码是 UTF-8,而其自身的默认编码,目前为 Unicode (UTF-16)。
    Mark Zhou
    2010年11月2日 13:05

全部回复

  • 这编码好像不对。中文的 HTML Encode 出来可能是 4 位也可能 2 位,您确定客户端请求过来的 Accept-Encoding 是 UTF-8 并且在 Http 服务器接收到编码后转成了 Unicode (C# 默认 Unicode)?


    Mark Zhou
    2010年11月1日 12:11
  • 编码问题,.Net下默认是UTF8

    这个要看你客户端是用的什么编码发送的

    建议修改客户端,在发送前先做UrlEncode

     

    2010年11月2日 12:00
  • 编码问题,.Net下默认是UTF8

    这个要看你客户端是用的什么编码发送的

    建议修改客户端,在发送前先做UrlEncode

     


    严格的说,.NET 对于 Web (如 ASP.NET,Http 开头的类型,WebClient 等) 的默认编码是 UTF-8,而其自身的默认编码,目前为 Unicode (UTF-16)。
    Mark Zhou
    2010年11月2日 13:05