關於 Python3 的編碼
阿新 • • 發佈:2017-08-07
gbk decode utf8 encode
1、Python3 中 str 與 bytes 的轉換:The bytes/str dichotomy in Python 3
2、關於utf8的bom頭。(Python3下)
>>> import codecs >>> codecs.BOM_UTF8 b‘\xef\xbb\xbf‘ >>> len(b‘\xef\xbb\xbf‘) 3 >>> codecs.BOM_UTF8.decode(‘utf8‘) ‘\ufeff‘ >>> len(‘\ufeff‘) 1
3、Python3 有哪些編碼:Standard Encodings、Python Specific Encodings 。
4、打印編碼及別名。(Get a list of all the encodings Python can encode to)
>>> from encodings.aliases import aliases >>> for k in aliases: print(‘%s: %s‘ % (k, aliases[k]))
5、驗證是不是有效編碼。
>>> import codecs >>> codecs.lookup(‘utf8‘) #有效 <codecs.CodecInfo object for encoding utf-8 at 0x13fb4f50828> >>> codecs.lookup(‘utf-;8‘) #有效 <codecs.CodecInfo object for encoding utf-8 at 0x13fb4f50a08> >>> codecs.lookup(‘utf88‘) #無效 Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> codecs.lookup(‘utf88‘) LookupError: unknown encoding: utf88
6、標準化 encoding。
>>> import encodings >>> encodings.normalize_encoding(‘utf-;8‘) ‘utf_8‘
對應 C 代碼為:unicodeobject.c 中的 _Py_normalize_encoding 函數。
7、sys/locale 模塊中與編碼相關的方法。(Python字符編碼詳解)
import sys import locale # 當前系統所使用的默認字符編碼 >>> sys.getdefaultencoding() ‘utf-8‘ # 用於轉換 Unicode 文件名至系統文件名所使用的編碼 >>> sys.getfilesystemencoding() ‘utf-8‘ # 獲取默認的區域設置並返回元組(語言, 編碼) >>> locale.getdefaultlocale() (‘zh_CN‘, ‘cp936‘) # 返回用戶設定的文本數據編碼 # 文檔提到this function only returns a guess >>> locale.getpreferredencoding() ‘cp936‘
相關閱讀:Unicode Tips
*** walker ***
本文出自 “walker的流水賬” 博客,請務必保留此出處http://walkerqt.blog.51cto.com/1310630/1954215
關於 Python3 的編碼