文字列 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")