python入门之编码、解码--乱码问题


前言

相信大家刚走入程序员这个行业的时候会经常出现一些文件乱码问题,作为一名努力的小白,我之前在写python时也经常碰见一些乱码的问题,看了‘老男孩’的python教学视频后感触很深,很多原理性的东西讲的很透彻,想要这个视频的链接的视频的话可以私信我分享给大家~


提示:以下是本篇文章正文内容,下面内容可供参考

一、字符编码

1、ASCII表:

a、只支持英文字符串
b、采用8位二进制数对应一个英文字符串

2、GBK表:

a、支持英文字符串、中文字符
b、采用8位(8=1Bytes)二进制数对应一个英文字符串
c、采用16位(16bit=2Bytes)二进制数对应一个中文字符

2、unicode:

注意:内存中统一使用unicode
1Bytes=8bit

a、兼容各个国家的字符
b、采用16位(16bit=2Bytes)二进制数对应一个中文字符
c、个别生僻会采用4Bytes、8Bytes

二、编码与解码

原理如下图所示:

在这里插入图片描述
编码:就相当于把文件按一个字符编码格式在内存中转成unicode二进制,再由unicode按指定的编码格式存入硬盘


解码:就相当于文件按指定的格式从硬盘中转成unicode二进制,再由udicode二进制按指定得到编码格式转成字符

2.文本文件存取乱码问题

1、存乱了:解决方法是,编码格式应该设置成支持文件内容字符串的格式

2、取乱了:解决方法是,文件是以什么编码格式存进硬盘的就以什么方式读入内存

如下:

 x = '上'
 res = x.encode('gbk')  # 编码 unicode-->gbk
 print(res, type(res))#得到bytes类似数据
 # 以什么方式存(编码)就以什么方式取(解码)
 print(res.decode('gbk'))  # 解码 gbk-->unicode
注意:python3默认编码格式:utf-8
python2默认编码格式: ASCII

总结

保障python程序前两个阶段不乱吗的核心法则为:指定头文件

# coding:文件当初存入硬盘时所采用的编码格式
#如:
# coding:utf-8
#记得将此段代码放在文件第一行

这是看了老男孩视频后的笔记,要是补充的不够全或有什么问题,欢迎大家提出一起进步

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值