一个网站A编码UTF8,另一个网站B编码GB2312,
现在通过A直接传递参数到B,在B中通过Request接收时,直接按GB2312编码解析了,所以是乱码.
该怎么解决,谢谢了。
现在通过A直接传递参数到B,在B中通过Request接收时,直接按GB2312编码解析了,所以是乱码.
该怎么解决,谢谢了。
解决方案 »
- 如何实现动态的网站后台管理系统,连接数据库的那种。
- 关于ckeditor中插入图片的问题
- 新手第五问:关于主键字段如何自动生成?
- 下载问题
- vs2005字体现实问题
- 项目发布引起的思考
- 我有一组文本框是前台产生的但是我后台如何接收它们不是服务器控件数量由另一个文本框决定【动态产生??个文本框】
- 已知mapwith=600px,如何把px换算成meter,谢谢!
- 为什么第一次这么不爽?
- ASP.NET access通配符问题,“%”和“*”都查不出结果
- 无法使用前导 .. 在顶级目录上退出(Cannot use a leading .. to exit above the top directory)
- ASP.NET C# 问题:找不到类型或命名空间名(是否缺少using指令或程序集引用?)
key = Server.UrlEncode(key); //按gb2312再进行编码
key =HttpUtility.UrlDecode(key,Encoding.GetEncoding("utf-8")); //通过utf-8的方式进行解码这样也可以,但感觉有点繁琐。
string strCN = Request.QueryString["text"];
byte[] btCN = System.Text.Encoding.Default.GetBytes(strCN);
string strUTF8 = System.Text.Encoding.UTF8.GetString(btCN);//转成utf8,gb2312与之相同
用Server.UrlEncode Server.UrlDecode
解决
http://www.cnblogs.com/downmoon/articles/1021140.html
key = Request.Params["key"]; 在通过这一步时,已经自动对传入的UTF8参数进行了GB2312的解码所以再进行urldecode已经没什么意义了。所在看能否在 Request.Params["key"] 进行按编码类别获取参数。现在重写描述一下我的问题,现在我传入的参数是%E5%A4%A7%E8%B1%86%E7%B2%89 ,即大豆粉的UTF-8编码,
要在一个GB2312编码的网站中接入这个参数,并把这个参数转换为gb2312编码,具体改怎么做?
对应的js方法为escape
无论接收端使用哪种文字编码,
接收端都不用作任何修改,
而且都能够正确解码上面的编码
这个对于有些汉字还会出现乱码,不知道什么原因。目前采用youfayoutian 的方法,在请求端对汉字使用escape,已解决。大家可以测试一下,
www.cha138.com 采用utf-8 ,使用www.vvcha.cn的搜索,而www.vvcha.cn使用gb2312编码。