python进阶100集(7)深入分析字符串乱码问题

boyanx4个月前技术教程14

字符串乱码问题一直是初学者比较头疼的事情,在之前的python基础专辑里面已经简单介绍过了,今天我们来深入分析一下python字符串乱码问题的原因,同样适用于其他编程语言!

#python##python自学##python教程#

首先了解以下几种编码:

ASCII:在计算机内部,所有信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此8个二进制位可以组合出256种状态,这被称为字节(byte)。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。它的范围基本只有英文字母、数字和一些特殊符号

GB2312:GB2312是对ASCII码的中文扩展,在ASCII码中添加了中文部分。

GBK:GBK编码是对GB2312的扩展,同时兼容简体中文和繁体中文,GB2312是对ASCII码的中文扩展。GBK全称《汉字内码扩展规范》,使用双字节码,是用来编码汉字的。对于英文字母还是按照ASCII字符集。对于汉字使用两个字节。

Unicode:又称万国码,将世界上所有的语言和符号都纳入其中,每一种符号都给予独一无二的编码,防止乱码。

UTF-8:变长码,UTF-8是在互联网中使用最多的对Unicode的实现方式。UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。比如:对于英文或数字还是按照ASCII字符集使用1个字节,对于汉字使用三个字节

汉字乱码的原因:

解决方案:

相关文章

python 模块 filecmp & difflib

主要介绍两个 Python 中常用于比较数据的模块,一个是 filecmp 模块,另一个是 difflib 模块。其中,前者主要用于比较文件及目录,后者主要用于比较序列的类和函数,下面具体介绍两者的区...

告别性能瓶颈!Rust拼接字符串的高效方法大揭秘

Rust拼接字符串的高效方法大揭秘 嘿,各位小伙伴!今天咱们来聊聊Rust里拼接字符串这个"老生常谈"的话题。别看这事儿简单,搞不好就让你的程序性能直接"跳水"!为啥字...

C语言字符串操作(c语言字符串操作函数)

代码:#include <stdio.h> #include <string.h> /* 字符串复制 */ void strcopy(){ char str...

【SQL】常见SQL慢查询问题及解决方法

SQL 慢查询问题的排查和解决需要综合考虑多个方面,包括索引的使用、查询语句的编写、表的关联方式以及数据库的配置等。通过对常见问题的分析和针对性的解决方法,可以有效地提高数据库查询的性能,提升系统的整...

Go语言实战案例-模拟登录验证(用户名密码)

在《Go语言100个实战案例》中 案例9:模拟登录验证(用户名密码) 的完整内容,旨在帮助初学者理解如何实现用户身份验证,掌握字符串处理和条件判断的运用。案例9:模拟登录验证(用户名密码) 安全性与交...

delphi 字符串基本操作笔记(delphi字符串转数字)

#头条创作挑战赛#在Delphi中,字符操作可以使用标准的字符串函数和运算符。以下是一些常见的字符操作。示例如下:字符串连接:var str1, str2, str3: string; be...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。