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

コメント

まだコメントはありません

コメントを投稿


お名前


メールアドレス(返信を通知する場合のみ記入)

認証コード(190721 と記入してください)