ruby-on-rails - 在 ruby​​ 中使用 .split 拆分 unicode(我认为)

标签 ruby-on-rails ruby regex unicode

我目前正在从 last.fm 抓取一个 rss 提要,标题属性看起来有一个 unicode“-”,在 firebug 上显示为\u2013。这是给那些好奇的人的提要:

http://ws.audioscrobbler.com/2.0/user/rj/recenttracks.rss

当我写这样的东西时

feedentry.title.split('-')

它不会找到 unicode 破折号。我也试过这个:

@feedsplit = feedentry.title.gsub(/\u2013/,'-').split("-") 

和一些变体,例如使用 [] 范围。没有运气。我看了看周围流传的其他答案,但似乎没有一个对我有用,所以这是我最后的希望。

感谢您的宝贵时间!

最佳答案

\u2013 语法仅适用于完全支持 Unicode 的 Ruby 1.9。我猜你正在运行 Ruby 1.8。

在 Ruby 1.8 中,您仍然可以使用 unicode 破折号作为 split 的参数。这些都有效:

feedentry.title.split("–")             # The actual UTF-8 char
feedentry.title.split("\342\200\223")  # The sequence of bytes

在正则表达式中,记得设置 u 修饰符以实现 unicode 兼容性(在 Rails 之外):

@feedsplit = feedentry.title.gsub(/–/u,'-').split("-") 

或者,设置 $KCODE = "U",这意味着所有正则表达式的 u 修饰符。 Rails 已经为您做到了。

关于ruby-on-rails - 在 ruby​​ 中使用 .split 拆分 unicode(我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308112/

相关文章:

ruby-on-rails - Redis 和 Resque 是否需要从与应用程序相同的目录启动? ( rails )

ruby - 重构条件变量赋值

ruby-on-rails - Controller 最佳实践

r - 在单词的字母之间插入空格

python : Convert Integers into a Count (i. e。 3 --> 1,2,3)

javascript - Bootstrap 模式没有出现在 Rails 应用程序中

ruby-on-rails - cucumber 未定义方法

ruby-on-rails - 如何从不同的 MVC 链接到用户配置文件?

ruby - Ruby 中的语句和表达式有什么区别?

asp.net - 正则表达式允许以 15 分钟为增量的小时数