我在提取来源页面地址,发现google过来的关键字存放数据库时编码不正常,而百度过来的是正常的。
例如从百度过来的:http://www.baidu.com/s?wd=%C4%E3%BA%C3&cl=3
关键字:%C4%E3%BA%C3 解码后存放数据库:你好 这个是正常的
而Google过来的:http://www.google.cn/search?complete=1&hl=zh-CN&q=%E4%BD%A0%E5%A5%BD&meta= 关键字:%E4%BD%A0%E5%A5%BD
存放数据库就是乱码。
我知道google是采用utf-8格式编码的,百度应该是gb2312的,我在webconfig里设置的格式是GB2312,后来我把webconfig 编码格式改成为utf-8结果就相反了, google上的又能正确转换了,而百度上的就不行了。 请问各位大哥,有什么方法帮小弟解决这个问题吗?谢谢啦
7 个解决方案
#1
你获取路径的时候先把路径编码成你想要的编码方式
然后再获取关键字 HttpUtility.UrlEncode(路径,System.Text.Encoding.GetEncoding("gb2312")
然后再获取关键字 HttpUtility.UrlEncode(路径,System.Text.Encoding.GetEncoding("gb2312")
#2
Request.Params["keyWord"].ToString()
在这个时候已经被解码了没办法用
HttpUtility.UrlEncode(Request.Params["keyWord"].ToString(),System.Text.Encoding.GetEncoding("gb2312")
在这个时候已经被解码了没办法用
HttpUtility.UrlEncode(Request.Params["keyWord"].ToString(),System.Text.Encoding.GetEncoding("gb2312")
#3
自己顶一下
#4
谁会啊,帮帮忙!
#5
没做过
友情UP
友情UP
#6
System.Collections.Specialized.NameValueCollection requestUrl = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("gb2312"));
String baiduKeyword = requestUrl["keyword"];
或者
Response.ContentEncoding 先使用GB2312,获取后再转回UTF-8
String baiduKeyword = requestUrl["keyword"];
或者
Response.ContentEncoding 先使用GB2312,获取后再转回UTF-8
#7
标记一下,我要学习!
#1
你获取路径的时候先把路径编码成你想要的编码方式
然后再获取关键字 HttpUtility.UrlEncode(路径,System.Text.Encoding.GetEncoding("gb2312")
然后再获取关键字 HttpUtility.UrlEncode(路径,System.Text.Encoding.GetEncoding("gb2312")
#2
Request.Params["keyWord"].ToString()
在这个时候已经被解码了没办法用
HttpUtility.UrlEncode(Request.Params["keyWord"].ToString(),System.Text.Encoding.GetEncoding("gb2312")
在这个时候已经被解码了没办法用
HttpUtility.UrlEncode(Request.Params["keyWord"].ToString(),System.Text.Encoding.GetEncoding("gb2312")
#3
自己顶一下
#4
谁会啊,帮帮忙!
#5
没做过
友情UP
友情UP
#6
System.Collections.Specialized.NameValueCollection requestUrl = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("gb2312"));
String baiduKeyword = requestUrl["keyword"];
或者
Response.ContentEncoding 先使用GB2312,获取后再转回UTF-8
String baiduKeyword = requestUrl["keyword"];
或者
Response.ContentEncoding 先使用GB2312,获取后再转回UTF-8
#7
标记一下,我要学习!