我正在从last.fm抓取一个rss feed,并且title属性看起来像是一个unicode“ - ”,它在firebug上显示为\ u2013。以下是那些好奇的人的饲料:
http://ws.audioscrobbler.com/2.0/user/rj/recenttracks.rss
当我写这样的东西时
feedentry.title.split('-')
它找不到unicode dash。我也试过这个:
@feedsplit = feedentry.title.gsub(/\u2013/,'-').split("-")
以及使用[]范围等一些变体。没运气。我看了看其他答案,其中没有一个似乎对我有用,所以这是我最后的希望。
谢谢你的时间!
答案 0 :(得分:0)
\u2013
语法仅适用于Ruby 1.9,它完全支持Unicode。我猜你正在运行Ruby 1.8。
在Ruby 1.8中,您仍然可以使用unicode dash作为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已经为你做了这件事。