python——字符编码

本文介绍了字符编码的基础知识,包括字符编码的历史发展,如ASCII、GBK、Shift_JIS、EUC-KR和Unicode(UTF-8)。重点讲解了Unicode的产生背景和作用,以及在Python中处理字符编码的实操技巧,包括解决乱码问题、Python2和Python3的编码差异,以及编码解码的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

字符编码

字符编码简介

由于计算机内部只识别二进制,但是用户(全球人类)在使用计算机的时候可以看到各式各样的语言,所以这中间必须对不同语言进行‘翻译’,计算机才能识别,这个翻译的标准就是字符编码表,数字和字符一一对应。

‘翻译’过程

  • 用户 → 计算机 → 用户
  **字符 → 数字 (01二进制)→ 字符**

字符串编码发展史

👉[ASCII](ASCII_百度百科 (baidu.com)

1.ASCII码

计算机最初是由美国人发明的,美国人为了能狗让计算机识别英文字符,发明了ASCII码,里面记录了英文与数字对应关系。如下图:

在这里插入图片描述

  • 所由英文字符和符号加起来不超过127个
  • 使用八位表示是为了后续发现新的语言
字符对应关系
  • A-Z:65-90
  • a-z:97-122

在python中,用ord()方法查看字符对应的数字(十进制)

在这里插入图片描述

2.汉字编码 ——GBK

为了让计算机能够识别中文,发明了另外一套编码,GBK
GBK编码表记录了中文英文与数字的对

### Python 字符编码与文件编码 #### 设置字符编码Python中处理字符串时,默认情况下使用的是`Unicode`编码。当需要将这些字符串保存到文件或其他外部存储介质上时,通常要将其转换成特定的编码格式,比如UTF-8或GBK等[^1]。 对于想要指定编码方式的情况,在读取或写入文件时可以通过参数来设定所需的编码形式: ```python with open('example.txt', 'w', encoding='utf-8') as f: f.write("中文测试") # 这里会自动按照utf-8编码写出数据 ``` 上述代码展示了如何创建并打开一个名为`example.txt`的文本文件,并指定了其编码为`utf-8`;接着向该文件内写入了一条包含中文字符的信息。由于这里设定了正确的编码格式,因此能够确保所写的文字不会出现乱码现象[^2]。 #### 转换字符编码 如果已经有一个字符串对象而希望改变它的内部表示,则可以利用`.encode()`方法来进行编码操作,以及通过`.decode()`函数完成相反过程——即从字节数组恢复回原始字符串。需要注意的一点是,在执行这两个动作的时候应该保持一致性,也就是说解码时采用的方式应当匹配之前用于编码的那个模式,这样才能避免产生不可预见的结果如乱码等问题[^3]。 下面的例子说明了怎样把一个普通的字符串先转化为byte类型的变量再还原回来: ```python original_str = "你好世界" encoded_bytes = original_str.encode('gbk') decoded_str = encoded_bytes.decode('gbk') print(f"Original String: {original_str}") print(f"After Encoding and Decoding: {decoded_str}") ``` 这段程序首先定义了一个含有中文字符的字符串`original_str`,之后调用了`.encode('gbk')`命令把它变成了遵循GBK标准的bytes序列存放在`encoded_bytes`之中;最后又借助于`.decode('gbk')`实现了由bytes回到string的操作并将最终得到的新字符串赋给`decoded_str`以便打印出来验证整个流程是否成功[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值