0 0

open-uri 中文问题5

require 'open-uri'
open("http://wwwl.baidu.com").read

得到的内容有乱码,怎么解决乱码问题呢
引用
<html><head><meta http-equiv=Content-Type content=\"text/html;charset=gb2312\"><title>\260??\273?\243\254?\276?\252\265      </title><style>body{margin:4px 0}p{margin:0;padding:0}img{border:0}td,p,#u{font-size:12px}#b,#u,#l td,a{font-family:arial}#kw{font:16px Verdana;height:1.78em;padding-top:2px}#b{height:30px;padding-top:4px}#b,#b a{color:#77c}#u{padding-right:10px;line-height:19px;text-align:right;margin:0 0 3px !important;margin:0 0 10px}#sb{height:2em;width:5.6em}#km{height:50px}#km a{font-family:??}#l{margin:0 0 5px 15px}#l td{padding-left:107px}p,table{width:650px;border:0}#l td,#sb,#km{font-size:14px}#l a,#l b{margin-right:1.14em}a{color:#00c}a:active{color:#f60}#hp{position:absolute;margin-left:6px}</style></head>\n<body><div id=u></div><center><a href=http://hi.baidu.com/baidu/ target=_blank><img src=http://www.baidu.com/img/baidu.gif width=174 height=59 alt=\"\265?\275????</a><br><br><br><br><table cellpadding=0 cellspacing=0 id=l><tr><td><div id=m><a onclick=s(this) href=http://news.baidu.com>?&nbsp;?</a><b>?&nbsp;?</b><a onclick=s(this) href=http://tieba.baidu.com>?&nbsp;\260?/a><a onclick=s(this) href=http://zhidao.baidu.com>?&nbsp;\265</a><a onclick=s(this) href=http://mp3.baidu.com>MP3</a><a onclick=s(this) href=http://image.baidu.com>?&nbsp;?</a><a onclick=s(this) href=http://video.baidu.com>?&nbsp;?</a></div></td></tr></table>\n<table cellpadding=0 cellspacing=0 style=\"margin-left:15px\"><tr valign=top><td style=\"height:62px;padding-left:92px\" nowrap><form name=f action=/s><input type=text name=wd id=kw size=42 maxlength=100><script>var w=document.f.wd;w.focus();document.getElementById(\"u\").innerHTML='<a href=\"http://passport.baidu.com/?login&tpl=mn&u='+escape(location.href)+'\">\265?\274</a>';function s(o){if(w.value.length>0){var h=o.href;var q=encodeURIComponent(w.value);if(h.indexOf(\"q=\")!=-1){o.href=h.replace(new RegExp(\"q=[^&$]*\"),\"q=\"+q)}else{o.href+=\"?q=\"+q}}};(function(){if(new RegExp(\"q=([^&]+)\").test(location.search)){w.value=decodeURIComponent(RegExp.$1)}})()</script> <input type=submit value=\260??\273? id=sb>&nbsp;<span id=hp><a href=/search/jiqiao.html>\260?</a><br><a href=/gaoji/advanced.html>\270?\266</a></span></form></td></tr></table>\n<p id=km>&nbsp;<a href=http://hi.baidu.com>\277?²®a>&nbsp;|&nbsp;<a href=/more/>\270/a></p>\n<p style=height:60px></p>\n<p style=height:30px><a onClick=\"this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.baidu.com')\" href=http://utility.baidu.com/traf/click.php?id=215&url=http://www.baidu.com>\260???Ý­??</a></p><p style=height:14px><a href=http://jingjia.baidu.com>???\271?a> | <a href=http://top.baidu.com>??\267®N\260| <a href=/home.html>\271????/a> | <a href=http://ir.baidu.com>About Baidu</a></p><p id=b>&copy;2008 Baidu <a href=http://www.baidu.com/duty/>??\260??\260\261?|/a> <a href=http://www.miibeian.gov.cn target=_blank>\276\251ICP?030173\272?/a> <img src=http://gimg.baidu.com/img/gs.gif></p></center></body></html><!--9e4e2f483832c794-->
2008年7月01日 15:57

1个答案 按时间排序 按投票排序

0 0

采纳的答案

ruby 的 iconv 是用来进行内码转换的。
留意一下你read的网站的编码格式。
Iconv.open("UTF-8", "GBK")

还有,我直接用Net::HTTP.get url

2008年7月08日 10:38

相关推荐

Global site tag (gtag.js) - Google Analytics