用百度搜索时百度把搜索的中文关键字进行了gb231编码,用js如何把这个gb2312编码还原成汉字

koenemy 2008-11-04 03:15:31
用百度搜索时百度把搜索的中文关键字进行了gb231编码,用js如何把这个gb2312编码还原成汉字
...全文
1158 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
乌云 2009-08-14
  • 打赏
  • 举报
回复
答非所问!
greatverve 2008-12-17
  • 打赏
  • 举报
回复
using System.Text;
Response.Write(Server.UrlEncode("中",Encoding.UTF8));
这个方法有错误,谁知道的正确的方法,试一试百度用得什么编码方式。
greatverve 2008-12-17
  • 打赏
  • 举报
回复
你们回答问题的人,试了吗?
我在百度中输入:中
http://www.baidu.com/s?wd=%D6%D0
这样输出:中
Response.Write(Server.UrlEncode("中"));
得到%e4%b8%ad

js的escape同样不行。
jiang_jiajia10 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lonely7345 的回复:]
http://www.cnitblog.com/yemoo/archive/2007/01/15/21883.html

<script language="javascript" runat="server">
function encode(str){
return escape(str);
}

function decode(str){
return unescape(str);
}
</script>
[/Quote]
可以啊
nealwike 2008-11-27
  • 打赏
  • 举报
回复
~ ~!
zywhao 2008-11-27
  • 打赏
  • 举报
回复
又学习了....
chuxue1342 2008-11-27
  • 打赏
  • 举报
回复
return unescape(str);
前面不是已经讲了吗?
dandelionl 2008-11-27
  • 打赏
  • 举报
回复
路过
qrh2008 2008-11-04
  • 打赏
  • 举报
回复
楼主说话还真幽默“宽窄不是我的问题”
koenemy 2008-11-04
  • 打赏
  • 举报
回复
宽窄不是我的问题

用js把经过gb2312编码的中文在转成中文

这是我的问题

回答别人的问题,最起码得知道我问得是啥呀。对不,

先谢谢楼上顶的几位
winner2050 2008-11-04
  • 打赏
  • 举报
回复
搜索引擎的url可能是任何编码。

你光靠拢gb2312太狭窄了。
koenemy 2008-11-04
  • 打赏
  • 举报
回复
用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js用js
w161134025 2008-11-04
  • 打赏
  • 举报
回复
百度的编码和解码
现在做一个网站流量计数器,发现以下问题: 我在提取来源页面地址,发现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上的又能正确转换了,而百度上的就不行了。 请问各位大哥有什么方法帮小弟解决这个问题吗?谢谢啦

你获取路径的时候先把路径编码成你想要的编码方式 然后再获取关键字 HttpUtility.UrlEncode(路径System.Text.Encoding.GetEncoding("gb2312")

Request.Params["keyWord"].ToString() 在这个时候已经被解码了没办法用 HttpUtility.UrlEncode(Request.Params["keyWord"].ToString()System.Text.Encoding.GetEncoding("gb2312")

System.Collections.Specialized.NameValueCollection requestUrl = HttpUtility.ParseQueryString(Request.Url.Query Encoding.GetEncoding("gb2312")); String baiduKeyword = requestUrl["keyword"]; 或者 Response.ContentEncoding 先使用GB2312,获取后再转回UTF-8
孤独侠客123 2008-11-04
  • 打赏
  • 举报
回复
http://www.cnitblog.com/yemoo/archive/2007/01/15/21883.html

<script language="javascript" runat="server">
function encode(str){
return escape(str);
}

function decode(str){
return unescape(str);
}
</script>
koenemy 2008-11-04
  • 打赏
  • 举报
回复
用js
netfeel2008 2008-11-04
  • 打赏
  • 举报
回复
<%@ Language=VBScript %>
<%
' 从URL中获取关键词
function findKeystr(urlstr)
dim regEx,vKey,vP,findKeystr1
findkeystr=""
vP = "(?:yahoo.+?[\?|&]p=|openfind.+&q=|google.+[\?|&]q=|lycos.+?query=|aol.+?query=|onseek.+?keyword=|search\.tom.+?word=|search\.qq\.com.+?word=|zhongsou\.com.+?word=|search\.msn\.com.+?q=|yisou\.com.+?p=|sina.+?word=|sina.+?query=|sina.+?_searchkey=|sohu.+?word=|sohu.+?key_word=|sohu.+?query=|163.+?q=|baidu.+[\?|&]wd=|3721\.com.+?name=|Alltheweb.+?q=)([^&]*)"
set regEx=new regexp
regEx.Global = true
regEx.IgnoreCase = true
regEx.Pattern = vP

set Matches = regEx.Execute(urlstr)
for each Match in Matches
' 没有使用subMatches是因为有的服务器可能并没有安装VBS5.5版本
findKeystr1 = regEx.replace(Match.value,"$1")
next

if findKeystr1<> "" then
findkeystr=lcase(decodeURI(findkeystr1))
if findkeystr = "undefined" then
findkeystr = URLDecode(findKeystr1)
end if
end if
end function

' 解开URL编码的函数(这是别人写的,我查到的地方标注为: 来源: CSDN 作者: dyydyy )
Function URLDecode(enStr)
dim deStr
dim c,i,v
deStr=""
for i=1 to len(enStr)
c=Mid(enStr,i,1)
if c="%" then
v=eval("&h"+Mid(enStr,i+1,2))
if v<128 then
deStr=deStr&chr(v)
i=i+2
else
if isvalidhex(mid(enstr,i,3)) then
if isvalidhex(mid(enstr,i+3,3)) then
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
i=i+5
else
v=eval("&h"+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
i=i+3
end if
else
destr=destr&c
end if
end if
else
if c="+" then
deStr=deStr&" "
else
deStr=deStr&c
end if
end if
next
URLDecode=deStr
end function


function isvalidhex(str)
isvalidhex=true
str=ucase(str)
if len(str)<>3 then isvalidhex=false:exit function
if left(str,1)<>"%" then isvalidhex=false:exit function
c=mid(str,2,1)
if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
c=mid(str,3,1)
if not (((c>="0") and (c<="9")) or ((c>="A") and (c<="Z"))) then isvalidhex=false:exit function
end function

Response.write findKeystr("http://www.google.com/search?hl=zh-CN&q=%E4%B8%AD%E5%9B%BDe%E5%BA%B7&btnG=Google+%E6%90%9C%E7%B4%A2&lr=")

%>
<script language="javascript" runat="server" type="text/javascript">
//解码URI
function decodeURI(furl){
var a=furl;
try{return decodeURIComponent(a)}catch(e){return 'undefined'};
return '';
}
</script>
--Stolen from Jiang Statistics
gongsun 2008-11-04
  • 打赏
  • 举报
回复
Server.UrlDecode("试试")
Server.UrlEncode("试试")


lz自己试吧,应该是2个中的一个,好像是UrlEncode...

62,245

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧