资讯专栏INFORMATION COLUMN

python疑问3:头痛的字符编码

tigerZH / 2359人阅读

摘要:一提到字符编码,我身边的好多朋友都挥手,拜拜字符编码就像一个烙印深深地印在心底,成为心病。所以当计算机在全球范围内进行覆盖时,各国纷纷制定属于本国的专属字符编码方案。知道了每个字符编码的由来,我们再看中编码疑问就很好解释了。

一提到字符编码,我身边的好多朋友都挥手,拜拜!字符编码就像一个烙印深深地印在心底,成为心病。
今天就来啃一啃这老骨头。
我们遇到过哪些编码?
ASCII,ANSI,GB2312,GBK,Unicode,UTF-8,MBCS,JIS,KS等等,为什么会出现这么多不同的编码,他们之间又有什么不同呢?
我们可以看看字符编码的历史,就能解决心中的疑惑了

由图可见,计算机当时从美国诞生,所以美国在设置字符编码的时候,并未考虑其它国家。所以当计算机在全球范围内进行覆盖时,各国纷纷制定属于本国的专属字符编码方案。由于各个方案互相并不兼容,所以便有Unicode一统天下。
知道了每个字符编码的由来,我们再看python中编码疑问就很好解释了。

python3将系统默认编码设置为utf-8

python3用str表示Unicode所有字符,bytes类型表示二进制数据

两者之间关系为:

b = "好"
print(type(b)) //

c = b.encode("utf-8")
print(type(c)) //

c = b.encode("ASCII")
print(type(c)) //报错,ASCII不支持中文

d = c.decode("utf-8")
print(type(d)) //

d = c.decode("gb2312")
print(type(d)) //报错,解码格式和编码格式不同

注意事项:

一般编码和解码格式保持一致,即使用utf-8编码后,也要用utf-8解码。否则可能会报错

含有中文的字符编码时不能采用ASCII,因为它不支持中文

习惯:虽然python3去除了python2字符编码的很多诟病,但是一些习惯还是保持下去
譬如头文件添加编码注释

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

如果问python2中怎么办呢?
弃坑吧!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41354.html

相关文章

  • unicode和utf8 —— 从一个遍历文件名脚本,谈谈对Python2和Python3字符

    摘要:如果传一个中文,下和下编码分别是和,可以自己用打印看看文件中写死,本来理解是跟这个文件本身编码有关,但文件编码同样是的情况下,下打印了的超集,下仍然是。 对编码问题一直一知半解,之前也是得过且过,正好有个同事要我帮忙写个脚本,涉及这方面的问题,借这个契机研究了一下. 先贴几篇比较好的: 1.阮老师的上古文章(07年…),虽然古老但对理解帮助很大,从最基础讲起,逻辑清晰易理解. (ps:...

    宠来也 评论0 收藏0
  • 纪念我第一个完整小说爬虫

    摘要:纪念我的第一个爬虫程序,一共写了三个白天,其中有两个上午没有看,中途遇到了各种奇怪的问题,伴随着他们的解决,对于一些基本的操作也弄清楚了。我这个程序想要获取的是剑来小说,把各个章节的内容爬去下载存储到文件里。 纪念我的第一个爬虫程序,一共写了三个白天,其中有两个上午没有看,中途遇到了各种奇怪的问题,伴随着他们的解决,对于一些基本的操作也弄清楚了。果然,对于这些东西的最号的学习方式,就是...

    Lin_R 评论0 收藏0
  • 分享几个YYDSPycharm插件

    摘要:大家好,我是一行之前一行分享过好用的几种编辑器,测试有没有下载成功,用来做数据分析,开发的大杀器,等等,小众猿群使用那在用这个开发大杀器的同时,一行也来分享几个它很好用的插件,来给你的搬砖提提速可以作为摸鱼好助手次下载 ...

    Richard_Gao 评论0 收藏0
  • Python中使用谷歌Cloud Speech API将语音转换为文字(另一种方案)

    摘要:如果你有疑问,或许可以参考创建密钥使用谷歌将语音转换为文字。将其取出,得到字典。 在之前发布的使用谷歌Cloud Speech API将语音转换为文字一文中,我们实现了在控制台使用curl发送post请求,得到语音转文字的结果;而在Python中使用谷歌Cloud Speech API将语音转换为文字一文中,我们实现了安装Cloud Speech API客户端库,通过调用库函数得到语音...

    ethernet 评论0 收藏0
  • 根治Kubernetes“存储头痛症”方法

    摘要:一旦建立了虚拟化层,并通过元数据进行数据管理,就可以执行以前无法完成的各种事情。一旦将元数据和数据的管理分开,所有消失了。当您虚拟化数据时,所有这些事情都是可能的,因为与孤立的存储基础架构相比,元数据的使用更加灵活。如果您已经在使用Kubernetes了,则可能有一个简单的原因:它使您的生活更轻松。毕竟,这是基于容器编排的整个前提。它让基础设施变得可支配,在需要时将其旋转,完成后将其丢弃,因...

    hearaway 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<