1. 程式人生 > >關於 Python3 的編碼

關於 Python3 的編碼

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 的編碼