- 浏览: 2047391 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
更新2011/11/15
有些不是IE上的了
如果不确定目标是什么编码,Ruby1.9开始可以用String类内置的encoding来得到编码。
使用//IGNORE忽略无法转换的字符
参考,老宋rubyer中文ruby力量,必须支持
在文件头指定程序编码
在***.rb头上添加,注意:一定要在第一行,中间添加无效
这个是用来处理代码编码的,就是代码中的中文
---------------华丽丽的历史小分割------------------------
以上只是个人的一些总结,如果你有其它方法,不妨发出来一起分享
简单汇总,都是JE上的,就是弄到一起
第一种情况,open的网站参数有中文
就会报错,因为浏览器打包给服务器发送参数的时候是经过编码的,所以我们也要给汉字经过一次编码,只需在这两句中间加上一句就可以了
这样 rul 字符串就被编码成 这样:sql%E8%AF%AD%E8%A8%80%E8%89%BA%E6%9C%AF就没问题了
注意:上边的编码是吧 一个汉字转换成三个字节 语 -》%E8%AF%AD(看百分号就知道到了)如果你要抓取的网站编码是GBK 那么 要把它转换成 一个汉字 对应成 2个字节,%E8%AF 。
来自这里
第二种情况, 自己网站是utf-8,open的网站是gb2312有中文
出自虎炮回答
第三种是需要 Iconv转换
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
Ruby代码
改为
参考论坛
换种方式实现:
我们还可以这样来写:
编码问题需要另行转换。
结果如下所示:
有些不是IE上的了
如果不确定目标是什么编码,Ruby1.9开始可以用String类内置的encoding来得到编码。
puts Iconv.iconv("UTF-8", doc.to_s.encoding.to_s, doc)
使用//IGNORE忽略无法转换的字符
Iconv.iconv("UTF-8//IGNORE", "GBK//IGNORE", doc)
参考,老宋rubyer中文ruby力量,必须支持
在文件头指定程序编码
在***.rb头上添加,注意:一定要在第一行,中间添加无效
#coding: utf-8
这个是用来处理代码编码的,就是代码中的中文
---------------华丽丽的历史小分割------------------------
以上只是个人的一些总结,如果你有其它方法,不妨发出来一起分享
简单汇总,都是JE上的,就是弄到一起
第一种情况,open的网站参数有中文
url="http://book.douban.com/subject_search?search_text=SQL语言艺术=1001" Nokogiri::HTML(open(url))
就会报错,因为浏览器打包给服务器发送参数的时候是经过编码的,所以我们也要给汉字经过一次编码,只需在这两句中间加上一句就可以了
url=URI.escape(url)
这样 rul 字符串就被编码成 这样:sql%E8%AF%AD%E8%A8%80%E8%89%BA%E6%9C%AF就没问题了
注意:上边的编码是吧 一个汉字转换成三个字节 语 -》%E8%AF%AD(看百分号就知道到了)如果你要抓取的网站编码是GBK 那么 要把它转换成 一个汉字 对应成 2个字节,%E8%AF 。
来自这里
第二种情况, 自己网站是utf-8,open的网站是gb2312有中文
doc = Nokogiri::HTML.parse(open("http://www.soso.cn/"), nil, "gb2312") @links = doc.css("a")
出自虎炮回答
第三种是需要 Iconv转换
目标网页是gb2312编码,有些页面能采回来,有些又提示有 无效的字符编码
Ruby代码
doc = Nokogiri::HTML(open(url))
改为
doc = Iconv.iconv("UTF-8","GB2312",Nokogiri::HTML(open(url)))
url = "http://www.hishibo.cn" doc = Nokogiri::HTML(open(url)) doc.css("h3").each do |c| puts Iconv.iconv("GBK//IGNORE", "UTF-8//IGNORE", c.content) end
参考论坛
require 'nokogiri' require 'open-uri' doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove')) doc.css('h3.r a.l').each do |link| puts link.content end doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove')) doc.css('h3.r a.l').each do |link| puts link.content end
换种方式实现:
doc.xpath('//h3/a[@class="l"]').each do |link| puts link.content end doc.xpath('//h3/a[@class="l"]').each do |link| puts link.content end
我们还可以这样来写:
doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link| puts link.content end doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link| puts link.content end
编码问题需要另行转换。
结果如下所示:
引用
Aaron Patterson (tenderlove) on Twitter
Tender Lovemaking
Force M.D. - Tender Love Lyrics
Force MDs - Tender Love
Jordan Knight - Tender Love
Alicia Keys- Tender Love(live)
tenderlove's nokogiri at master - GitHub
Tender Love and Care on Flickr - Photo Sharing!
USHER - TENDER LOVE LYRICS
Love Quotes - Tender Love Quotes
Tender Lovemaking
Force M.D. - Tender Love Lyrics
Force MDs - Tender Love
Jordan Knight - Tender Love
Alicia Keys- Tender Love(live)
tenderlove's nokogiri at master - GitHub
Tender Love and Care on Flickr - Photo Sharing!
USHER - TENDER LOVE LYRICS
Love Quotes - Tender Love Quotes
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 885heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3212reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3236alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1431问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1337这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1297以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1854首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2232这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2221开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1186class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8086TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 1972刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1429这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1893面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17143git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2674简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 907第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1652开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12897Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2065又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
JSP乱码 N种解决方案
java中最头疼的可能就是中文乱码的问题,这个可以彻底解决中文乱码的问题
Ireport中文不显示以及乱码十几种解决方案,百度上每种解决方案必定有属于你的哪一种问题。 独家整理、
c#控制台下的汉字输出乱码,可以通过这段程序解决
解决Lua文件反编译后汉字乱码问题。开发环境vs2013,语言c#
中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析
get提交中文乱码 地址重写中文乱码 jsp url中文乱码四种解决方式
解决ultraeditor打开中文文件出现乱码的情况
jsoncpp解决中文乱码,测试ok,欢迎下载使用,ubuntu下测试ok的 ,里面有makefile,直接编译就可以,也可以自己修改交叉编译
解决jspdf导出pdf中文乱码,详细说明地址:https://blog.csdn.net/jinggaoniao/article/details/108751020
C# 将中文乱码转换成中文C# 将中文乱码转换成中文
中文乱码问题整理总结 通过平时开发实践,总结的乱码问题.
excel打开csv文件中文乱码问题,将乱码文件拖到此工具就可完成转码,正常显示中文。
本资源参考网上原版为存取英文字符的ini操作,未考虑中文乱码问题。而网上另外也有资料如何处理中文编码,例如转码为utf-8,存能解决乱码,取又出现问题。本资源我重新整理,用unicode完美解决中文乱码问题。用法: ...
本Demo主要针对jquery的$.getJSON操作,返回json, 针对传参出现的中文乱码, json里出现中文乱码。
使用ODBC对数据库时插入数据库中包含中文字符串的数据提交后,再去查询插入的中文字符串,显示中文字符串部分是乱码
ubuntu rsync中文乱码 window ubuntu rsync同步中文乱码.docx
Java关于中文乱码问题的多种解决方法,中文乱码过滤器
soapUI输入中文显示为乱码 响应报文中文乱码问题解决方法
ZXing 2.1版GBK中文乱码解决办法: zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了...