码迷,mamicode.com
首页 > 编程语言 > 详细

python学习之基础:编码

时间:2017-12-07 20:50:49      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:blank   读取   erro   python   osi   nbsp   ack   html   com   

参考网址: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学习之基础:编码

标签:blank   读取   erro   python   osi   nbsp   ack   html   com   

原文地址:http://www.cnblogs.com/nbhhcty66/p/8000627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!