字符编码

计算机只能处理数字01,如果要处理文本,就必须先把文本转换为数字01,这种转换方式就称为字符编码。

对于我们而言,你只需要简单记住下面几种编码就好:

  • ASCII编码:早期专门为英语语系编码,只有255个字符,每个字符需要8位也就是1个字节。不兼容汉字。

  • Unicode编码:又称万国码,国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。用2个字节来表示汉字。

  • UTF-8编码:为了节省字节数,在Unicode的基础上进行优化的编码。用1个字节表示英文字符,3个字符表示汉字。天生兼容ASCII编码,所以最为流行。

  • GB2312:我国早期自己制定的中文编码,世界范围内不通用。

  • GBK: 全称《汉字内码扩展规范》,向下与GB2312兼容,向上支持ISO10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。windows中文版的汉字编码用的就是GBK。也非世界范围通用的编码

  • 其它编码:非以上类型者的统称。属于能不用就不要碰的编码。

最后再强调一次,Python3在运行时全部使用Unicode编码!

另外有这么几条规则,你要记住:

  • 操作系统运行时,在内存中,统一使用的都是Unicode编码,当需要将数据保存到硬盘或者网络传输的时候,就转换为UTF-8编码,进行保存和传输。

  • 用文本编辑器的时候,从文件系统或者说硬盘上读取的UTF-8编码字符被转换为Unicode字符到内存里,供程序或者操作系统使用。编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。

  • 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8传输到客户的浏览器。

这就是为什么我们一会说Unicode,一会又用utf-8的原因。

另外,一定要区分代码自己本身的编码和程序要处理的数据的编码!没有特殊要求的情况,请使用utf-8编码。确保文本编辑器使用的是UTF-8 without BOM编码。

posted @   fat_girl_spring  阅读(470)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示