お前は半角スペースではない
1日1 Python のお時間です。
今回は半角スペースもどきの話をする。たびたび緑さんのテキストファイルに紛れ込み、 Markdown を狂わせてきた悪しきスペースもどき。
x = ' '
この謎のスペースのことをぼくは正体不明のスペースと呼んでいたのだけど、正体がようやく判明した。
NBSP だ
これは no-break space あるいは non-breaking space という。略して NBSP。
の html 上での姿- 自動折返しが行われないスペース(HTML 上での自動折返しをさせないという意味)
である。 Python で半角スペースとの違いを突き止めるときは次↓の通り。
space = ' '
x = ' '
print(ord(space)) # 32
print(ord(x)) # 160
print(hex(ord(space))) # 32 -> 0x20
print(hex(ord(x))) # 160 -> 0xa0
Python で謎の文字の正体を unicode 一覧表から探し出すときは、以下の手順をとる。
- 上の Python みたいに、
ord
で文字のコードポイントを取得する。(NBSP であれば160) - その数値を16進数へ変換する。(160であれば 0xa0)
- Wikipedia の Unicode 一覧を開く。
- 表の一覧から文字を探し出す。 0xa0 であればこう↓(画像参照)。