Python 中文字符串编码转换与 Unicode 桥梁作用详解

橘子海
橘子海
发布时间:2026-10-14| 5人浏览过
原创

本文通过Python代码示例,演示了中文字符串在GBK与UTF-8编码间的转换过程。重点解析了Unicode字符串作为中间桥梁,实现不同编码格式(如Windows常用的gb2312与Python默认的utf-8)之间互转的核心机制,帮助开发者解决中文乱码问题。

Python 中文字符串编码转换与 Unicode 桥梁作用详解

>>> teststr = '我的eclipse不能正确的解码gbk码!'


>>> teststr


'\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81'


>>> tests2 = u'我的eclipse不能正确的解码gbk码!'


>>> test3 = tests2.encode('gb2312')


>>> test3


'\xce\xd2\xb5\xc4eclipse\xb2\xbb\xc4\xdc\xd5\xfd\xc8\xb7\xb5\xc4\xbd\xe2\xc2\xebgbk\xc2\xeb\xa3\xa1'


>>> test3


'\xce\xd2\xb5\xc4eclipse\xb2\xbb\xc4\xdc\xd5\xfd\xc8\xb7\xb5\xc4\xbd\xe2\xc2\xebgbk\xc2\xeb\xa3\xa1'


>>> teststr


'\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81'


>>> test3.decode('gb2312').encode('utf-8')


'\xe6\x88\x91\xe7\x9a\x84eclipse\xe4\xb8\x8d\xe8\x83\xbd\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe8\xa7\xa3\xe7\xa0\x81gbk\xe7\xa0\x81\xef\xbc\x81'


>>> test3.decode('gb2312').encode('utf-8') == teststr


True


如上所见,test3变量(采用gb2312编码)先经过解码操作转换为Unicode字符串,随后再使用utf-8进行编码,最终得到的字符串值与teststr完全相同。



通过上述示例可以明确,Unicode字符串充当了gb2312字符串(Windows系统常用格式)与utf-8字符串(Python内部默认格式)之间的转换桥梁。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。