- 浏览: 2072217 次
- 性别:
- 来自: 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 927heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3255reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3287alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1470问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1379这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1344以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1903首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2272这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2262开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1234class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8138TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2018刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1481这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1939面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17209git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2731简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 945第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1691开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12952Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2115又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
本篇文章将深入探讨这个问题,并提供一种彻底解决中文乱码问题的方法。 首先,我们需要理解什么是乱码。乱码通常出现在字符编码不匹配的情况下,即数据存储或传输时采用的编码格式与读取或显示时使用的编码格式不...
当在C#控制台应用中遇到汉字输出乱码的情况,这通常是因为编码不匹配所导致的。编码是字符集与二进制数据之间的转换规则,不同的系统或软件可能默认使用不同的编码格式,如UTF-8、GBK(GB2312的扩展)、UTF-16等。 ...
中文乱码主要由以下几种情况引起: 1. **前端与后端编码设置不一致**:前端发送的数据采用了一种编码格式(如UTF-8),而后端接收时使用的却是另一种(如GBK)。 2. **HTTP响应头未正确配置**:HTTP响应头中的`...
- JSP页面默认使用ISO-8859-1编码,如果不做特殊处理,中文字符可能会出现乱码。 2. **JSP文件本身的编码设置** - 确保你的JSP文件本身使用正确的编码保存,如UTF-8。编辑器如Notepad++或IDEA允许你设置文件编码...
Lua源代码文件通常采用UTF-8编码,因为它是一种广泛支持的国际标准,可以正确处理各种语言的字符,包括汉字。然而,反编译工具如果不识别或处理这种编码方式,就可能导致乱码。 针对这个问题,我们可以从以下几个...
Eclipse 中中文汉字乱码的解决方案 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),但是在使用过程中,用户可能会遇到中文汉字乱码的问题。本文将为大家分享解决 Eclipse 中中文汉字乱码的方案,以便大家...
以上就是针对IReport中文不显示及乱码问题的十几种解决方案,每种情况都有其特定的解决办法。在尝试时,请根据自己的具体情况进行操作,相信总有一种方法能帮你解决问题。如果问题依然存在,建议查阅IReport的官方...
ODBC中文乱码问题解决方案 在使用ODBC对数据库进行中文字符串插入时,经常会遇到中文字符串显示乱码的问题。本文将通过对该问题的分析和解决方案,帮助读者更好地理解ODBC中文乱码问题的成因和解决方法。 一、问题...
解决 JSP 中文乱码的方案 JSP 中文乱码是动态网站...解决 JSP 中文乱码的方案有多种,选择哪种方案取决于具体情况。但无论选择哪种方案,都需要确保 JSP 的字符集和数据库的字符集保持一致,以避免中文乱码的出现。
本文介绍了 Keepass2 在 Ubuntu 15.10 下中文乱码的问题,并提供了两种解决方案:修改 /etc/fonts/conf.avail/65-nonlatin.conf 文件和使用 FC_DEBUG=1 环境变量。此外,我们还讨论了 Ubuntu Server 和 Linux 全英文...
ZXing 2.1版GBK中文乱码解决办法: zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了...
Linux系统中文乱码解决完整方案 本文档旨在解决 Linux 系统中文乱码问题,提供了一个完整的解决方案。该问题是由于 Linux 和 Windows 系统下所用户的字符集不同,Linux 系统使用的是 Unicode 字符集,而 Windows ...
此文档也是我从几天焦虑中发现可以用的几种解决cocos2d-x中文乱码的方法。亲自试过了。cygwin可以编译过。但是我感觉直接在代码里面写宽字符=L("中文") 似乎不行。自己编译那个iconv好像也难,用jni回调后java转码...
在解决中文乱码问题时,需要注意以下几点: 1. 在 Java 文件中尽量不要写中文,如果必须写中文,尽量手动带参数-ecoding GBK 或-ecoding gb2312 编译。 2. 对于 JSP,在文件头加上 `;charset=GBK"%>` 或 `;...
soapUI输入中文显示为乱码 响应报文中文乱码问题解决方法
汉字乱码的产生通常有以下几种原因: 1. 数据库字符集设置不正确:SQL Anywhere在创建数据库或表时,默认的字符集可能不支持中文。你需要确保数据库的字符集设置为能够处理Unicode字符的编码,如UTF-8,以便容纳...
get提交中文乱码 地址重写中文乱码 jsp url中文乱码四种解决方式
本文将深入探讨如何使用C#语言解决中文乱码问题,将乱码文本正确转换为可读的中文。 ### 核心知识点:字符编码与转换 #### 1. 字符编码概念 字符编码是计算机用于存储、传输和显示文字的一套规则,它将字符映射到...