python学习之基础:编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之基础:编码相关的知识,希望对你有一定的参考价值。

参考网址:https://www.xncoding.com/2015/10/24/python/unicode.html

 

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里, 编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

技术分享图片

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:

技术分享图片

所以你看到很多网页的源码上会有类似的信息,表示该网页正是用的UTF-8编码

 

>>> print(‘包含中文的str‘)
包含中文的str



>>> ‘ABC‘.encode(‘ascii‘)
b‘ABC‘
>>> ‘中文‘.encode(‘utf-8‘)
b‘\xe4\xb8\xad\xe6\x96\x87‘
>>> ‘中文‘.encode(‘ascii‘)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-1: ordinal not in range(128)


>>> b‘ABC‘.decode(‘ascii‘)
‘ABC‘
>>> b‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘)
‘中文‘


在操作字符串时,我们经常遇到str和bytes的互相转换。为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时, 就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:


#!/usr/bin/env python
# -*- coding: utf-8 -*-





















以上是关于python学习之基础:编码的主要内容,如果未能解决你的问题,请参考以下文章

python学习之基础

Python基础学习之语句和语法

Python学习之编码

python 学习之 基础篇三 流程控制

Python 学习之[编码]

python学习之字符编码