首页 > 代码库 > 关于 Python3 的编码

关于 Python3 的编码

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 的编码