[ python ] 字符编码

字符编码

  这里主要描述以下三种编码方式:

  (1)ASCII

  (2)unicode

  (3)uft-8

  (4)gbk

 

ASCII 码

  在计算机内部,所有的信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此 8 个 二进制位就可以组合成 256 种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示 256种不同的状态,每一个状态对应一个符号,就是 256 个符号,从 00000000 到 11111111

  美国定制了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。

 

  一个字符用 1 个字节表示  1 byte = 8 bit

  ASCII 码只包含字母和英文中的特殊符号,不包括汉字;

 

unicode (万国码)

  世界上存在很多种不同的编码,同一个二进制数字可以被解释成不同的符号。因此,想要打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式打开就会出现乱码。如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是 unicode 万国码的由来,这是一种所有符号的编码。

 

  字母:

    一个字母等于 4 个 byte = 32 bit

  汉字:

    一个字母等于 4 个 byte = 32 bit

  

1. unicode 的问题

  需要注意的是, unicode 只是一个字符集,它规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。

  (1)如何才能区分 unicode 和 ASCII ? 计算机怎么知道三个字节表示一个符号,而不是分别表示三个符号呢?

  (2)英文在 ASCII 码中,只需要一个字节表示就够了,如果采用 unicode 统一规定,每个符号用三个或四个字符表示,这对于存储来说是极大的浪费,文本文件的大小胡因此大出二三倍。

 

UTF-8 

  互联网的普及,强烈要求出现一种统一的编码方式。utf-8 就是在互联网上使用最广的一种 unicode 的实现方式。

  字母:

    一个字母等于 2 byte = 8 bit

  汉字:

    一个中文等于 3 byte = 24 bit

 

GBK

  包含全部中文字符,utf-8则包含全世界所有国家需要用到的字符;

  字母:

    一个字母 1 byte = 8 bit

  汉字:

    一个汉字 2 byte = 16 bit

 

 =、==、is 三者的使用说明

1. = 赋值

例子:

1
2
s1 = 'hkey'
s2 = 'xiaofei'

 

2. ==  比较值是否相等

1
2
3
4
print( 1 == 2)
 
# 执行结果:
# False

 

3. is 比较内存地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
s1 = 6
s2 = 6
 
print(s1 is s2)
 
# 执行结果:
# True
 
s11 = 'adfadsasdfasdff'
s22 = 'adfadsasdfasdff1'
 
print(s11 is s22)
 
# 执行结果:
# False

 

本文作者:hukey

本文链接:https://www.cnblogs.com/hukey/p/9647291.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hukey  阅读(302)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 彩虹 Jay
彩虹 - Jay
00:00 / 00:00
An audio error has occurred.

彩虹 + 轨迹 (Live) - 周杰伦 (Jay Chou)

彩虹

词:周杰伦

曲:周杰伦

哪里有彩虹告诉我

哪里有彩虹告诉我

能不能把我的愿望还给我

能不能把我的愿望还给我

为什么天这么安静

为什么天这么安静

所有的云都跑到我这里

有没有口罩一个给我

有没有口罩一个给我

释怀说了太多就成真不了

释怀说了太多就成真不了

也许时间是一种解药

也许时间是一种解药

也是我现在正服下的毒药

也是我现在正服下的毒药

看不见你的笑 我怎么睡得着

看不见你的笑 我怎么睡得着

你的声音这么近我却抱不到

你的声音这么近我却抱不到

没有地球太阳还是会绕

没有地球太阳还是会绕

没有理由我也能自己走

没有理由我也能自己走

你要离开 我知道很简单

你要离开 我知道很简单

你说依赖 是我们的阻碍

你说依赖 是我们的阻碍

就算放开 但能不能别没收我的爱

就算放开 但能不能别没收我的爱

当作我最后才明白

当作我最后才明白

看不见你的笑 要我怎么睡得着

看不见你的笑 要我怎么睡得着

你的声音这么近我却抱不到

没有地球太阳还是会绕 会绕

没有理由我也能自己走掉

释怀说了太多就成真不了

也许时间是一种解药 解药

也是我现在正服下的毒药

轨迹

词:黄俊郎

曲:周杰伦

我会发着呆然后忘记你

接着紧紧闭上眼

想着哪一天 会有人代替

想着哪一天 会有人代替

让我不再想念你

我会发着呆 然后微微笑

我会发着呆 然后微微笑

接着紧紧闭上眼

又想了一遍 你温柔的脸

又想了一遍 你温柔的脸

在我忘记之前