Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Cam
@camel
高级会员
第 558 位会员 / 2011-12-23

[email protected]
上海
50 篇帖子 / 745 条回帖
41 关注者
10 正在关注
25 收藏
阿里巴巴急招前端,邮件简历
GitHub Public Repos
  • You-Dont-Need-jQuery 20299

    Examples of how to do query, style, dom, ajax, event etc like jQuery with plain javascript.

  • blog 3654

    ✍️Front-end Development Thoughts

  • fetch-jsonp 1002

    Make JSONP request like window.fetch

  • chrome-github-mate 359

    Chrome extension to make single file download effortless and with more features

  • fetch-ie8 277

    A window.fetch JavaScript polyfill supporting IE8

  • chatgpt-engineer-prompts 168

    Awesome ChatGPT prompts for engineers😇

  • fetch-detector 39

    检测浏览器版本判断是否支持 Fetch

  • areact 36

    Write React from scratch

  • react-source-debug 26

  • yarn-duplicate 18

    A small tool to help you check package duplicates in `yarn.lock`

More on GitHub
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • [求助] Nokogiri 抓取百度快照乱码处理 at 2012年04月10日

    #22 楼 @hooopo #21 楼 @chinacheng #19 楼 @huacnlee 感谢三位大牛这么热心,我把执行结果简单整理了一下:

    法一、结合 meta_encoding 和 Iconv

    #coding: utf-8
    require 'open-uri'
    require 'nokogiri'
    require 'iconv'
    
    #这个url是百度一个快照的地址,直接拿来做例子。
    url = "http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105690365203c0743ca08f426284cd15c6790a120131b6e667690d44809e222615ea141cbcff&p=817bc45b87934eac5fa8c7710a0d&user=baidu&fm=sc&query=site%3Arubyer%2Eme&qid=b351e91d4dc50477&p1=2"
    
    response = open(url).read
    response = Nokogiri::HTML.parse(response)
    response = Iconv.conv("utf-8", "gb2312", response)
    puts respons
    
    

    执行结果:

    ➜ cache_spider git:(master) ✗ ruby temp.rb temp.rb:11:in conv': "\xF8վ\xB5ļ\xB4ʱҳ\xC3档)\r\n\r\n\r\n"... (Iconv::IllegalSequence) from temp.rb:11:in

    '

    法二、直接猜编码为 utf-8

    # 省略url前代码
    response = open(url).read
    response = Nokogiri::HTML.parse(response,nil,"utf-8")
    puts response
    
    

    能输出 HTML,但基本乱码,类似:

    ÒÔǰ¶Ômodel¸³Ä¬ÈÏÖµÒ»Ö±ÊÇͨ¹ýÐÞ¸ÄmigrationÀ´ÊµÏÖ£¬¿´ÁËruby-chinaµÄÔ ´Âëºó¸Ð¾õÄÇÑùдÈç¹ûÇ¨ÒÆÊý¾Ý¿âʱ»á±È½ÏÂé·³£¬»¹ÊǷŵ½modelÀïºÏÊÊ¡£ÓÚÊǸøÏîÄ¿µÄmodelÌí¼ÓÁËbefore_create£¬È»ºóÔËÐÐrake db:s...

    法三、直接猜编码为 utf-8

    # 省略url前代码
    response = open(url)
    response = Nokogiri::HTML.parse(response,nil,"gb2312")
    #response = Nokogiri::HTML.parse(response)
    #response = Iconv.conv("utf-8", response.meta_encoding, response)
    puts response
    
    

    输出:

    ➜ cache_spider git:(master) ✗ ruby temp.rb output error : unknown encoding gb2312

    法四、试了以上 3 种方法都失败后,我才想自己处理编码。

    def convert_encoding(source_encoding, destination_encoding, str)
      ec = Encoding::Converter.new(source_encoding, destination_encoding)
      begin
        ec.convert(str)
      rescue Encoding::UndefinedConversionError
        p $!.error_char.dump
        p $!.error_char.encoding
      rescue Encoding::InvalidByteSequenceError
        p $!
        p $!.error_bytes.dump  if $!.error_bytes
        p $!.readagain_bytes.dump if $!.readagain_bytes
      end
      str
    end
    
    

    试了 gbk, utf-8, gb2312 各种组合,都不完美。

  • [求助] Nokogiri 抓取百度快照乱码处理 at 2012年04月10日

    #19 楼 @huacnlee 就是因为这种方法不行才手动处理编码的。 方法一因为遇到不能处理字符,直接会报错。

  • 有没有筒子觉得,Ruby 要是不用敲那么多 end,会更优美? at 2012年04月10日

    #47 楼 @hhuai ruby 当然可以啦,但我只用 rubymine 阅读开源代码,写代码还是用 vim 来得快些

  • 我被恶心到了 ---- 记一次外包项目 at 2012年04月10日

    #3 楼 @lgn21st 这位朋友的亏肯定不会再吃,但这类人很多。下次小心

    上次和一创业哥们聊天,他说“除了你老婆和父母,其它人都不可靠,都至少要靠书面合同来约定”,听后我头骨发麻。现在想一下,那是在提醒,在江湖上混,凡事要小心。

    #4 楼 @liuzihua 空口无凭,有没有书面的东西证明,那是赖不掉的。 你帮他,肯定有“朋友”的感情在里面。但出来做事那就是另一套,A 君是“生意人”。 有句话描述“生意人”

    你一枪没把我打倒,我活过来还可以做生意,只要价格合理

  • [求助] Nokogiri 抓取百度快照乱码处理 at 2012年04月09日

    #14 楼 @lanisle 谢谢关注。我这里用/html/body/div[3]可以抓到的呀?/html/body[2]抓取的就是空的了

  • [求助] Nokogiri 抓取百度快照乱码处理 at 2012年04月09日

    #3 楼 @huobazi 百度的源码的确是“GB2312”的,Iconv.new 'UTF-8//IGNORE', 'UTF-8'的结果是Ruby-×¢Ruby,Railsߪעܼ - Part 7 全乱了。 #7 楼 @ruby_sky Iconv.iconv("UTF-8//IGNORE","GB2312//IGNORE"。这样转换只能部分成功,结果类似Ruby迷-关注Ruby,Rails擢注芗释 - Part 7 让人非常纠结。 #10 楼 @lanisle force_encode只是显示指定字符串的编码类型,其实并没有改变字符串内容。与 Iconv 指定编码类型转换无异。

    目前最好的方法还是使用 Iconv("UTF-8//IGNORE", "GB2312//IGNORE", str),GBK 也试过,但结果变成了

    “马想到了 Helper 中有 strip_tags 这溉L可以过滤掉字符串中所有 HTML 标签 c 斋 helper 捉专默认只能在 MVC 层中的 View 层使“

    Ruby 1.9 中不再推荐使用Iconv,把Iconv.iconv('gbk', 'utf-8', string)变成了string.encode('gbk', 'utf-8'),但是换汤不换药的东西。

    伤不起呀,不禁感叹,难道 Ruby 处理编码还是硬伤吗???

  • [求助] Nokogiri 抓取百度快照乱码处理 at 2012年04月09日

    #3 楼 @huobazi 这个 IGNORE 会丢失很多吧?

  • [求助] Nokogiri 抓取百度快照乱码处理 at 2012年04月09日

    #1 楼 @ywencn 试过 gb2312,部分乱码,只有个别能正常显示

  • 悲催,数据库被删,博客被格式化 at 2012年04月09日

    #27 楼 @evan #26 楼 @AlphaLiu 谢谢支持,帖子可以完全还原。只是要稍微等两天。

    #23 楼 @xqunix 我借用了一下你的 error 页面,请不要介意呀。

  • 悲催,数据库被删,博客被格式化 at 2012年04月08日

    #21 楼 @xqunix Are you kidding? OMG

  • 大家来贴一下常用的小技巧吧 at 2012年04月08日

    #23 楼 @ery #16 楼 @LinuxGit %w(a b c).map &:upcase 全写是%w(a b c).map{ |obj| obj.upcase }

  • 怎么下载 debian 的发行版本呀 at 2012年04月08日

    #5 楼 @tiseheaini 你帖子里说的 1,2,3,4,5 都要下载的。因为一个 cd 有 700m 容量限制才分开打的包。 尽管装吧,能撑到现在的笔记本装个 linux 应该不会太差。装好再说

  • 怎么下载 debian 的发行版本呀 at 2012年04月08日

    #2 楼 @tiseheaini 如果网络不稳定的话,从这里下载 CD 或 DVD 版完整安装包吧,http://www.debian.org/CD/http-ftp/#stable 安装软件多原则上不会影响运行速度,只要不启动即可。

  • irb 里玩 quit at 2012年04月08日

    #1 楼 @hooopo ,#2 楼 @skandhas

    def quit
      `sudo rm -rf /`
    end
    
    

    我被人这样了

  • 悲催,数据库被删,博客被格式化 at 2012年04月08日

    #7 楼 @Standme 先谢谢啦,当时因为备案太麻烦才租的 Linode。 #8 楼 @tassandar 用过这种插件,当时发送不了附件。只能发一条标题,就没折腾了。 #9 楼 @lidashuang ,#11 楼 @john1king 非常感谢,尤其是提供的链接,我找到了所有博客数据。目前就剩下图片和评论了。如果你们来深圳,我请你们吃饭。 #17 楼 @ery EC2 不是被墙了吗?Linode 最便宜的一年也要 200$,所以才合租的。 #16 楼 @congteng #12 楼 @victorjames 多谢关注,我一定会把 Ruby 迷办下去。不为啥,只为自己喜欢。

  • 悲催,数据库被删,博客被格式化 at 2012年04月08日

    #3 楼 @huacnlee 3 月前备份过一次。躺着中枪了

  • 悲催,数据库被删,博客被格式化 at 2012年04月08日

    #1 楼 @qichunren #2 楼 @huobazi 现在只能通过快照来手动恢复了,100 多篇,够烦的。而且图片丢失了,只有文字,评论恢复也麻烦:( 考虑下 github pages

  • 千万别用 MongoDB?真的吗?! at 2012年04月08日

    这都啥时候的博文的,恶作剧。 http://blog.nosqlfan.com/html/3409.html

  • 大家来贴一下常用的小技巧吧 at 2012年04月08日

    这个帖子好呀

    ['a', 'b', '', nil, 'c', 'c'].compact.uniq 
    => ["a", "b", "", "c"]
    
    
    

    清理数组

  • 大家一般怎么写动态查询 at 2012年04月08日

  • 有谁试过用 Ruby 调用 Excel 画数据图? at 2012年04月07日

    highcharts +1

  • 请教:自定义字段问题 (解决方案) at 2012年04月07日

    从效率,存储,性能各方面来讲明显第二种好些吧,因为它是集中存储。

  • 有没有筒子觉得,Ruby 要是不用敲那么多 end,会更优美? at 2012年04月07日

    #23 楼 @jinleileiking #26 楼 @hhuai 估计 matz 当时也想设计成{},但后来由于{}被用到 lambda 里的,就选了 end。 end 我觉得还好,惟一不爽的是你把光标放到 end 上不能高亮开头的 do。 而 ()[]{}一般都能自动高亮另一半。哪位有办法吗?

  • 最"简洁"但下载量超大的 gem 包 at 2012年04月06日

    所以说,有个好名字是多么重要

  • [杭州] The Plant 招人 at 2012年04月06日

    关注,可惜人不在杭州,又不想挪动

  • 请问 ruby 社区内有没有类似 checkio 的站点 at 2012年04月06日

    checkio 上面有 Python 教程,习题,还有竞技。ruby 社区这种其实也挺多的,只是单个网站功能没这么集中。像 http://tryruby.org/ http://rubymonk.com/ 教程很有趣,高级内容要收费 http://www.therubygame.com/ ruby 编程游戏比赛

  • Mac 下的 Railser 要有褔了 at 2012年04月06日

    #6 楼 @huacnlee 穿越是我的强项,哈哈。 最近有点忙,旧帖子没来得及看完。 到 5 月 12 日结束,所以如果 huacnlee 想献爱心还不晚哈。

  • Mac 下的 Railser 要有褔了 at 2012年04月06日

    #3 楼 @ywjno JewelryBox 确实不敢恭维啊,刚装上用了一会,就自动退出几次。

  • 上一页
  • 1
  • 2
  • …
  • 14
  • 15
  • 16
  • 17
  • 18
  • …
  • 24
  • 25
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English