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

boyanx6天前技术教程3

字符串乱码问题一直是初学者比较头疼的事情,在之前的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个字节,对于汉字使用三个字节

汉字乱码的原因:

解决方案:

相关文章

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

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

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

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

Nginx的location匹配规则,90%的人都没完全搞懂,一张图让你秒懂

每次改完Nginx配置都得反复重启测试?匹配规则优先级记不清导致线上翻车。运维老司机都懂这种痛:昨天刚上线的新规则被旧配置覆盖了,关键在Nginx的location优先级机制——精确匹配= 最高效但最...

C语言模拟实现字符串操作函数(c语言模拟实现字符串操作函数是什么)

1. strlenstrlen是用来求字符串长度的函数,字符串长度就是字符串中包含的字符的个数,但是不包含字符串结尾的 ‘\0’ 实现strlen有三种方法:(1)定义一个计数器size_t ...

C++/C#搜索字符串的for循环算法(c++查找字符串出现次数)

1.前言InfinityHook里面有个搜索字符串的算法比较有意思,如果是在C#里面一行代码即可搜索。但C++则是承担了底层的实现。如何实现的呢?本篇来看下2.概括在source里面搜索pattern...

一文读透,Python暴力(BF)字符串匹配算法到 KMP 算法之间的变化

1. 字符串匹配算法所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个模式字符串。如在字符串 " ABCDEFG " 中查找是否存在 “ EF ” 字符串。可以把字符...

发表评论    

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