tempad
Readygo技术搜索引擎 >>防火墙 >> 从百度过来的中文参数成乱码了,如何解决?

从百度过来的中文参数成乱码了,如何解决?

Readygo技术搜索引擎 网络搜索 efish 2008-1-19 4:50:05

从百度过来的中文参数成乱码了,如何解决?

楼主sekone()2006-05-26 11:26:18 在 .NET技术 / ASP.NET 提问

http://www.chaoji.com/ClassInfo.aspx?page=30&type=156&smallname=%E6%B8%B8%E6%88%8F%E5%B7%A5%E5%85%B7&bigname=%E6%B8%B8%E6%88%8F%E5%A8%B1%E4%B9%90  
   
  这是从百度搜索连接过来的  
  我的web.config   编码是设置为gb2312的      
  我用  
  System.Web.HttpUtility.UrlDecode(Page.Request.QueryString.ToString(),System.Text.Encoding.Encoding.UTF8)  
  得到的是乱码  
   
  用System.Web.HttpUtility.UrlDecode("%E6%B8%B8%E6%88%8F%E5%B7%A5%E5%85%B7",System.Text.Encoding.Encoding.UTF8)    
  得到"游戏娱乐"   正常  
   
  我把web.config   编码设置为utf-8   都正常  
   
  怎么回事,如何解决 问题点数:40、回复次数:7Top

1 楼lazyfish(呆呆虫)回复于 2006-05-26 11:35:07 得分 0

url是gb2312编码的,你用UTF-8当然是乱码了。要用gb2312解码嘛。Top

2 楼shiro(比卡丘)回复于 2006-05-26 11:39:18 得分 0

后面的System.Text.Encoding.Encoding.UTF8不要写Top

3 楼ilovejolly(有些伤感)回复于 2006-05-26 11:39:34 得分 0

markTop

4 楼sekone()回复于 2006-05-26 11:43:44 得分 0

搞什么啊  
   
  url是gb2312编码的,你用UTF-8当然是乱码了。要用gb2312解码嘛  
  ====  
  我改了   ,不行啊  
  ==  
  后面的System.Text.Encoding.Encoding.UTF8不要写  
  ==============  
  也不行     啊  
   
   
  我好象每个编码都试过了   都不行   怎么一回事Top

5 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-05-26 11:55:28 得分 0

baidu是gb2312的urlencode  
   
  System.Web.HttpUtility.UrlDecode("%E6%B8%B8%E6%88%8F%E5%B7%A5%E5%85%B7",Encoding.GetEncoding("gb2312))    
  Top

6 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-05-26 11:56:48 得分 0

google用的是utf-8  
  baidu用的是gb2312  
   
  比如  
   
  %BB%EE%B0%D0%D7%D3  
   
  是的结果是   HttpUtility.UrlEncode("活靶子",System.Text.Encoding.GetEncoding("gb2312")的结果  
  解码用  
  HttpUtility.UrlDncode("%BB%EE%B0%D0%D7%D3",System.Text.Encoding.GetEncoding("gb2312")  
  将得到   "活靶子"  
   
  utf-8   的同理  
  Top

7 楼sprc_lcl(cool一生)回复于 2006-05-30 16:32:31 得分 40

string   sContent   =   Request.RawUrl;  
  sContent   =   sContent.Substring(sContent.IndexOf("?")+1);  
  string   .Substring(0,zzzz.IndexOf("=")),zzzz.Substring(zzzz.IndexOf("=")+1));  
  }  
   
   
  string   smallname   =   aList.ToString();  
  string   bigname   =   aList.ToString();  
   
  smallname   =   System.Web.HttpUtility.UrlDecode(smallname,System.Text.Encoding.GetEncoding("utf-8"));  
  bigname   =   System.Web.HttpUtility.UrlDecode(bigname,System.Text.Encoding.GetEncoding("utf-8"));  
  Response.Write(smallname+"<br>"+bigname);  
   
   
  //游戏工具   游戏娱乐。。。呵呵,有分接就是好^0^Top

责任编辑: efish 参与评论 查找更多:
相关文章
关于首页生成静态 关于首页生成静态
存储过程简介 存储过程简介
如何使用DataGrid针对每条记录可打开新链接窗口,同… 如何使用DataGrid针对每条记录可打开新链接窗口,同时将该条记录的多个字段值作为参数进行传递,用于新的窗口?新打开的窗口如何控制大小
求现代数据库管理第七版的电子书的下载地址 求现代数据库管理第七版的电子书的下载地址
请教,如何通过ASP.NET 代码自动弹出下载对话框下载… 请教,如何通过ASP.NET 代码自动弹出下载对话框下载服务器端文件(在线等)
这个程序有什么地方出错吗???(timer不起作用) 这个程序有什么地方出错吗???(timer不起作用)
[北京]招聘WEB设计师(2人) [北京]招聘WEB设计师(2人)
有关Calendar类使用的疑惑 有关Calendar类使用的疑惑
我用file按钮选择上传文件类型的时候,accept不能过… 我用file按钮选择上传文件类型的时候,accept不能过滤类型文件
vs2003用哪个版本的vss? vs2003用哪个版本的vss?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎