首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Ruby删除RSS中的非UTF8字符

如何使用Ruby删除RSS中的非UTF8字符
EN

Stack Overflow用户
提问于 2015-08-29 13:40:58
回答 3查看 570关注 0票数 0

我正在使用Ruby的RSS Library来解析RSS提要,但是当RSS提要中的项目符号字符作为出现时,我偶尔会遇到错误。

代码语言:javascript
复制
require 'rss'
rss = RSS::Parser.parse('rss_url_here', false)

这导致了

代码语言:javascript
复制
#<ArgumentError: invalid byte sequence in UTF-8>

由于字符。如何删除字符?

更新:

我试过使用

代码语言:javascript
复制
require 'net/http'
require 'rss'
uri = URI('https://newyork.craigslist.org/search/jjj?query=graphic%20design&s=100&sort=date&format=rss')
json = Net::HTTP.get(uri)

json.force_encoding('CP1252')
json.force_encoding('utf-8')

rss = RSS::Parser.parse(json, false)

仍然会得到

代码语言:javascript
复制
ArgumentError: invalid byte sequence in UTF-8
EN

回答 3

Stack Overflow用户

发布于 2015-08-29 13:51:51

您可以使用HTMLEntities

代码语言:javascript
复制
HTMLEntities.new.decode(rss_feed_content)
票数 0
EN

Stack Overflow用户

发布于 2015-08-30 01:00:57

我想知道,阅读我在评论中提到的两个函数的文档并区分force_encodingencode是否有那么难。

代码语言:javascript
复制
require 'net/http'
require 'rss'
uri = URI('https://newyork.craigslist.org/search/jjj?query=graphic%20design&s=100&sort=date&format=rss')
text = Net::HTTP.get(uri)

rss = RSS::Parser.parse(text.force_encoding('CP1252').encode('utf-8'), false)
#⇒ #<RSS::RDF:0x000000053791a0 .....
票数 0
EN

Stack Overflow用户

发布于 2015-08-30 17:40:26

我喜欢像这样删除垃圾字符代码:

代码语言:javascript
复制
json = json.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32283076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档