【廖雪峰Python学习笔记】字符串与编码

本文深入讲解了ASCII、Unicode和UTF-8三种字符编码方式,解释了计算机系统如何进行字符编码转化,以及Python语言中字符串的编码与解码操作。同时,文章提供了Python格式化的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串与编码

三种字符编码

  1. ASCII编码 :计算机由美国人发明,最早只有127个字符编码—— 大小写英文字母、数字和符号
  2. Unicode:把中文、日文、韩文等所有语言统一到一套编码中,2-4byte,现代OS和大多数语言都支持
  3. utf-8:可变长度编码,1-6byte。[使用utf-8编码,传输英文字符,节省空间]

计算机系统字符编码转化:

  1. 计算机内存中统一使用Unicode编码
  2. 保存到硬盘中或需要传输时,转化为UTF-8编码
    浏览网页
    服务器把动态生成的Unicode内容,转化为UTF-8在传输到浏览器
    记事本编辑
    从文本读取UTF-8被转换为Unicode到内存中
    编辑完成保存时,将Unicode转为UTF-8保存到文件中

Python中的字符串

  1. Python3中以Unicode编码,支持多语言
  2. Unicode表示的str通过encode()方法,可以编码为指定的bytes
  3. 网络或磁盘读取的字节流bytes,通过decode()方法,转化为Unicode表示的str
  4. 如果bytes中只有一小部分无效的字节,可以传入errors='ignore’忽略错误的字节
  5. 纯英文的str可以用ASCII编码为bytes
  6. 含有中文的str可以用UTF-8编码为bytes
  7. 含有中文的str无法用ASCII编码 —— 中文编码的范围超过了ASCII编码的范围,Python会报错
  8. 如果.py文件本身使用UTF-8编码,并且也申明了# -- coding: utf-8 --,打开命令提示符测试就可以正常显示中文:

Python格式化

占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数

tips:如果不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值