1.Unicode编码的由来

字符串还有一个编码问题

计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。

如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

2. UnicodeDecodeError处理

如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

# -*- coding: utf-8 -*-

目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为… 并选择UTF-8格式保存。

【廖雪峰python入门笔记】Unicode编码_UnicodeDecodeError处理相关推荐

  1. 【廖雪峰python入门笔记】迭代

    1. 迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过for ...

  2. 【廖雪峰python入门笔记】切片

    1. 对list进行切片 对list进行切片 取一个list的部分元素是非常常见的操作.比如,一个list如下: L = ['Adam', 'Lisa', 'Bart', 'Paul'] 取前3个元素 ...

  3. 【廖雪峰python入门笔记】列表生成式

    1. 生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, ...

  4. 【廖雪峰python入门笔记】函数

    1. 函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  5. 【廖雪峰python入门笔记】dict

    1. dict 我们已经知道,list和tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是 ...

  6. 【廖雪峰python入门笔记】for循环

    list或tuple可以表示一个有序集合.如果我们想依次访问一个list中的每一个元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print(L[0]) print ...

  7. 【廖雪峰python入门笔记】if语句

    1. if语句及缩进规则 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if ...

  8. 【廖雪峰python入门笔记】tuple_创建单元素

    tuple和list一样,可以包含 0 个.1个和任意多个元素. 包含多个元素的 tuple,前面我们已经创建过了. 包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示: t = ( ...

  9. 【廖雪峰python入门笔记】list_按照索引访问

    1. 按照索引访问list Python按照索引访问list 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: L = ['Adam', 'Lisa', ' ...

最新文章

  1. 学界 | 进化算法可以不再需要计算集群,开普敦大学的新方法用一块GPU也能刷新MNIST记录
  2. 内核驱动漏洞与攻击预防--by MJ0011
  3. java设计模式之委派模式
  4. Linux之系统文件管理
  5. Asp.Net Core Blazor之容器部署
  6. 如何将风险应用加入白名单_理财要如何将资金分散呢?可以参考风险分散和分享经济红利的思路...
  7. 关于在Visual Studio 2019预览版中的用户体验和界面的变化
  8. Python语言程序设计课程论文——Python小游戏
  9. wiley期刊AMA-lato,latex字体安装问题
  10. Xcode 9有什么新功能?
  11. 费率转换成利率的计算器_存款利率计算器
  12. 组合数学(原书第5版)
  13. 查找100-200以内素数
  14. 夏普Android系统,夏普LCD-60\70TX85A及YunOS安卓运行环境安装指南
  15. 那时候的漫画【怀旧贴】
  16. 2020厦大计算机专硕分数,2020考研初试,你得考多少分才能上厦大?
  17. 记云服务器中挖矿病毒与防范
  18. mysql随机生成名字,起名不求人
  19. 某校2019专硕编程题-学生成绩评级
  20. ts 简单的对象深拷贝

热门文章

  1. 刻意练习:LeetCode实战 -- Task12. 合并K个排序链表
  2. VS2010 CUDA 5.5 VA_X Win7 64位配置
  3. 远程办公,你希望在家工作几天?
  4. 专访陈天桥:把钱投给甘坐冷板凳的AI研究员
  5. 香奈儿的 AI 实验室里,发生了什么?
  6. 从腾讯实时音视频发家史,看爆发中的 RTC 将何去何从
  7. 基于监督学习+自监督学习的智能抠图,精确到发丝 | CVPR 2020
  8. Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?
  9. ​哪些开发问题最让程序员“头秃”?我们分析了Stack Overflow的11000个问题
  10. 掌握这些步骤,机器学习模型问题药到病除