HTMLのnbspにはまった話

HTMLの&nbspが半角スペースだと思ってたんですが、実は違ったんだね…。
半角スペースはUnicodeでU+0020、対して&nbspはU+00A0となり、
別々の文字コードとなる。当然見た目は同じなんだけどね。。。

どういう状況でこれに困るかというと、スクレイピングしたデータをパースしたい場合。
Rubyで例えば、以下のようにsplitしたとき区切り文字がnbspだとうまくいかない。

1irb(main):001:0> s ="2503 Hoge Fuga"
2=> "2503 Hoge Fuga"
3irb(main):002:0> s.split(" ")
4=> ["2503 Hoge Fuga"]

じゃあどうするか?

1irb(main):003:0> s.split(/\u{00A0}/)
2=> ["2503", "Hoge", "Fuga"]

Unicodeを直接指定すればできる、と。
空白のはずなのにsplitできなくて小一時間悩んだ。

Posted at : 2015-09-05 15:41:40 / Category : none

Comments

まだコメントはありません / No comment.

Send comment


Name


Mail-address (empty is OK. If you want to notify update, please fill mail-address.)


Bot check code (241222 と入力してください / Please input 241222.)