我想是 WebRequest.Create(url)接收主机对url里的汉字无法识别?对方的接口是vs6.0编写的。

解决方案 »

  1.   

    首先,把你要传参数到ASP的那页的ResponseEncoding设为GB2312
    其次,接收参数的那ASP页面要把RequestEncoding相应地设为GB2312
    (没用过ASP,不知ASP是否有RequestEncoding这属性 -_-")
      

  2.   

    谢谢答复,可是对方公司提供接口不止服务我们一家,我不可能去修改对方的东西只能去想办法适应。帮助里有这么一段话(HttpUtility.UrlEncode)如果在 HTTP 流中传递空白和标点之类的字符,则它们在接收端可能会被错误地解释。URL 编码将 URL 中不允许使用的字符转换为等效字符实体;URL 解码会反转此编码过程。例如,当嵌入要在 URL 中传输的文本块时,字符 <和> 被编码为%3c 和%3d。但我想是不是只有在相同的平台上才可以。而我现在是传给一台asp服务器,对方如何译码呢?
      

  3.   

    C:\WINNT\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config修改'第一行
    <?xml version="1.0" encoding="gb2312"?>'查找到修改为
    <globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
      

  4.   

    其实你发请求的编码方式跟对方处理请求的编码方式一样就可以了。
    根据这个思想,你首先要询问对方到底是用什么编码的。你发请求时相应地编码那URL就可以了.
    几个星期前我也遇过类似的情况,我的ASPX是UTF8的而对方的ASP是GB2312。后来对方答应我们的要求改成UTF8了。
      

  5.   

    Stream stm=httpResponse.GetResponseStream();
    StreamReader reader=new StreamReader(stm,System.Text.UnicodeEncoding.GetEncoding("GB2312")以上是我接受对方响应的代码,一此是不是可以断定对方使用编码是GB2312我使用了,上面大家提供的方法一一测试,将machine.config里的utf-8 改为GB2312包括 web.config里的utf-8也改为GB2312 ,对方的响应依然是“数据不匹配"头大,继续请教。~~