Shift-JISとms932の違いとか

http://www.ingrid.org/java/i18n/unicode.html

>>> "(^〜^)(‖_‖)('−')"
"(^\x81`^)(\x81a_\x81a)('\x81|')"
>>> _.decode("sjis")
u"(^\u301c^)(\u2016_\u2016)('\u2212')"
>>> print _
(^〜^)(‖_‖)('−')
>>> print u"(^\uff5e^)(\u2225_\u2225)('\uff0d')"
(^〜^)(‖_‖)('−')

ほほー。やっぱりはてなダイアリー投稿時に変換されてしまったけど最後の2行の顔文字は別の顔になっていた。

http://www.nishiohirokazu.org/files/sjis_vs_ms932.png

何も考えずにsjisって呼んでいたけど、厳密にはShift_JISじゃないということを理解しておかないといけないってことだなぁ。
上のコードも下のように書けば文字化けを起こさない。

>>> "(^〜^)(‖_‖)('−')"
"(^\x81`^)(\x81a_\x81a)('\x81|')"
>>> _.decode("cp932")
u"(^\uff5e^)(\u2225_\u2225)('\uff0d')"
>>> print _
(^〜^)(‖_‖)('−')
    • -

おー、これライブドアリーダーで見たら平行線が垂直な方に正規化されてるな。面白い。