Python编码,基础编码规则

这篇教程深入探讨Python编码,从字符编码基础知识到Unicode、UTF-8、UTF-16和UTF-32的区别。讲解了ASCII的不足,Python的str和bytes处理,以及如何处理外部数据的编码问题,帮助开发者解决常见的编码错误。
摘要由CSDN通过智能技术生成

概述

在使用Python或者其他的编程语言,都会多多少少遇到编码错误,处理起来非常痛苦。在Stack Overflow和其他的编程问答网站上,UnicodeDecodeError和UnicodeEncodeError也经常被提及。本篇教程希望能帮你认识Python编码,并能够从容的处理编码问题。

本教程提到的编码知识并不限定在Python,其他语言也大同小异,但我们依然会以Python为主,来演示和讲解编码知识。

通过该教程,你将学习到如下的知识:

  • 获取有关字符编码和数字系统的概念
  • 理解编码如何使用Python的str和bytes
  • 通过int函数了解Python对数字系统的支持
  • 熟悉Python字符编码和数字系统相关的内置函数

什么是字符编码

现在的编码规则已经有好多了,最简单、最基本是的ASCII编码,只要是你学过计算机相关的课程,你就应该多少了解一点ASCII编码,他是最小也是最适合了解字符编码原理的编码规则。具体如下:

  • 小写英文字符:a-z
  • 大写英文字符:A-Z
  • 符号: 比如 $和!
  • 空白符:回车、换行、空格等
  • 一些不可打印的字符: 比如\b等

那么,字符编码的定义到底是什么了?它是一种将字符(如字母,标点符号,符号,空格和控制字符)转换为整数并最终转换为bit进行存储的方法。 每个字符都可以编码为唯一的bit序列。 如果你对bit的概念不了解,请不要担心,我们后面会介绍。

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天分享一些学习的方法和需要注意的小细节,技术经验分享!点击加入我们的 python学习者聚集地

ASCII码的字符被分为如下几组:

ASCII表一共包括128个字符,如果你想了解整个ASCII表,这里有

Python string模块

string模块是python里处理字符串很方便的模块,它包括了整个ASCII字符,让我们来看看部分string模块源码:

# From lib/python3.7/string.py

whitespace = ' \t\n\r\v\f'
ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_letters = ascii_lowercase + ascii_uppercase
digits = '0123456789'
hexdigits = digits + 'abcdef' + 'ABCDEF'
octdigits = '01234567'
punctuation = r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
printable = digits + ascii_letters + punctuation + whitespace

你可以在Python中这样使用string模块:

>>> import string

>>> s = "What's wrong with ASCII?!?!?"
>>> s.rstrip(string.punctuation)
'What's wrong with ASCII'

什么是bit

学过计算机相关课程的同学,应该都知道,bit是计算机内部存储单位,只有0和1两个状态(二进制),我们上面所说的ASCII表,都是一个10进制的数字表示一个字符,而这个10进制数字,最终会转换成0和1,存储在计算机内部。例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值