みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Python3 まとめ

文字列 String型とbytes型がある。

String型は文字コードに関係ないので、プログラムの中では、文字列はString型を用いるべきである。

String型とbytes型の変換は以下のようにする。

# python3.3
>>> m="みーのぺーじ"
>>> m
"みーのぺーじ"
>>> b=bytes(m,"shift-jis")
>>> b
b"\x82\xdd\x81[\x82\xcc\x82\xd8\x81[\x82\xb6"
>>> n=str(b,"shift-jis")
>>> n
"みーのぺーじ"

quopri (quoted-printable transport encoding) moduleを使用するときは、String型とbytes型に気をつける。

http://docs.python.org/3.3/library/quopri.html?highlight=quopri#quopri

メールの文字列をquopriで変換するときは、String型の文字列を一度shift-jisなど文字コードでエンコードしてからquopri.decodestringに渡す必要がある。

quopri.decodestring(bytes(m,"shift-jis"))

Base64も同様で、Base64から文字列に変換するときは、文字コードを指定してデコードする必要がある。

str(base64.b64encode(b),"shift-jis")