一个网站A编码UTF8,另一个网站B编码GB2312,
现在通过A直接传递参数到B,在B中通过Request接收时,直接按GB2312编码解析了,所以是乱码.
该怎么解决,谢谢了。

解决方案 »

  1.   

    我现在有一个办法就是  key = Request.Params["key"];  //通过request时自动按gb2312解码
     key = Server.UrlEncode(key);  //按gb2312再进行编码
     key =HttpUtility.UrlDecode(key,Encoding.GetEncoding("utf-8"));  //通过utf-8的方式进行解码这样也可以,但感觉有点繁琐。
      

  2.   


    string strCN = Request.QueryString["text"];
    byte[] btCN = System.Text.Encoding.Default.GetBytes(strCN);
    string strUTF8 = System.Text.Encoding.UTF8.GetString(btCN);//转成utf8,gb2312与之相同
      

  3.   

    编码问题本来就是很头疼的事情!
    用Server.UrlEncode   Server.UrlDecode  
    解决
      

  4.   

    Server.UrlEncode+Server.UrlDecode就可以解决了
      

  5.   

    最好统一
    http://www.cnblogs.com/downmoon/articles/1021140.html
      

  6.   

    以上办法都不能解决,
    key = Request.Params["key"];  在通过这一步时,已经自动对传入的UTF8参数进行了GB2312的解码所以再进行urldecode已经没什么意义了。所在看能否在 Request.Params["key"] 进行按编码类别获取参数。现在重写描述一下我的问题,现在我传入的参数是%E5%A4%A7%E8%B1%86%E7%B2%89 ,即大豆粉的UTF-8编码,
    要在一个GB2312编码的网站中接入这个参数,并把这个参数转换为gb2312编码,具体改怎么做?
      

  7.   

    请求端使用HttpUtility.UrlEncodeUnicode();
    对应的js方法为escape 
    无论接收端使用哪种文字编码,
    接收端都不用作任何修改,
    而且都能够正确解码上面的编码
      

  8.   


    这个对于有些汉字还会出现乱码,不知道什么原因。目前采用youfayoutian 的方法,在请求端对汉字使用escape,已解决。大家可以测试一下,
    www.cha138.com 采用utf-8 ,使用www.vvcha.cn的搜索,而www.vvcha.cn使用gb2312编码。