代码之家  ›  专栏  ›  技术社区  ›  dav

在ruby中使用.split拆分unicode(我认为)

  •  3
  • dav  · 技术社区  · 16 年前

    我目前正在从last.fm抓取一个rss提要,title属性看起来像是一个unicode“-”,在firebug上显示为\u2013。以下是好奇者的信息:

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

    当我写这样的东西的时候

    feedentry.title.split('-')
    

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

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

    还有一些变体,比如使用[]范围。运气不好。我看了一眼其他的答案,似乎都不适合我,所以这是我最后的希望。

    谢谢你的时间!

    1 回复  |  直到 16 年前
        1
  •  0
  •   molf    16 年前

    这个 \u2013

    在Ruby1.8中,仍然可以使用unicode破折号作为参数 split . 这两种方法都有效:

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

    在正则表达式中,请记住设置 u

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

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