我目前正在从 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/