文字コードと変換
1600 ワード
文字コードとトランスコード
詳細:
http://www.cnblogs.com/yuanchenqi/articles/5956943.html
http://www.diveintopython3.net/strings.html
必要:
1.python 2のデフォルト符号化はASCII、python 3のデフォルトはunicode
2.unicodeはutf-32(4バイトを占める)、utf-16(2バイトを占める)、utf-8(1-4バイトを占める)、so utf-16は現在最もよく使われているunicodeバージョンですが、ファイルに保存されているのはutf-8です.utf 8の省スペースのためです.
3.py 3でencodeは、トランスコードと同時にstringをbytesタイプにし、decodeは復号と同時にbytesをstringに戻す
上図はpy 2のみ
python2
python3
詳細:
http://www.cnblogs.com/yuanchenqi/articles/5956943.html
http://www.diveintopython3.net/strings.html
必要:
1.python 2のデフォルト符号化はASCII、python 3のデフォルトはunicode
2.unicodeはutf-32(4バイトを占める)、utf-16(2バイトを占める)、utf-8(1-4バイトを占める)、so utf-16は現在最もよく使われているunicodeバージョンですが、ファイルに保存されているのはutf-8です.utf 8の省スペースのためです.
3.py 3でencodeは、トランスコードと同時にstringをbytesタイプにし、decodeは復号と同時にbytesをstringに戻す
上図はpy 2のみ
python2
#-*-coding:utf-8-*-
__author__ = 'Alex Li'
import sys
print(sys.getdefaultencoding())
msg = " "
msg_gb2312 = msg.decode("utf-8").encode("gb2312")
gb2312_to_gbk = msg_gb2312.decode("gbk").encode("gbk")
print(msg)
print(msg_gb2312)
print(gb2312_to_gbk)
python3
#-*-coding:gb2312 -*- #
__author__ = 'Alex Li'
import sys
print(sys.getdefaultencoding())
msg = " "
#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") # unicode, decode,
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")
print(msg)
print(msg_gb2312)
print(gb2312_to_unicode)
print(gb2312_to_utf8)