Python编程:字符串编码问题

简介: Python编程:字符串编码问题

字符串还有一个编码问题。


因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为 ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。


如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了 GB2312编码,用来把中文编进去。


类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码, Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。


Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。


因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。


Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:


print u'中文'

中文

注意: 不加 u ,中文就不能正常显示。


Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:


转义:


u'中文\n日文\n韩文'

多行:


u'''第一行

第二行'''

raw+多行:


ur'''Python的Unicode字符串支持"中文",

"日文",

"韩文"等多种语言'''

如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释


# -*- coding: utf-8 -*-


目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。

相关文章
|
1天前
|
安全 Python
Python 高级编程:高效读取 txt 文件的技巧与实践
在 Python 中,读取 txt 文件是常见操作。本文介绍了使用 `with` 语句自动管理文件资源、逐行读取文件、读取特定字节范围内容、处理编码问题以及使用缓冲读取提高性能等高级方法,确保代码高效且安全。通过这些技巧,你可以更灵活地处理文件内容,并避免资源泄漏等问题。原文链接:https://www.wodianping.com/app/2024-10/44183.html
32 18
|
2天前
|
机器学习/深度学习 Linux Python
Python编程教学
Python教学
24 13
|
2天前
|
缓存 Python
Python编程中的装饰器深度探索
本文深入探讨了Python中装饰器的高级用法,从基本定义到实际应用,展示了如何利用装饰器提升代码的灵活性和可维护性。通过具体示例,解析了装饰器在函数增强、日志记录、权限验证等方面的应用,旨在帮助读者彻底理解和掌握这一强大的编程工具。
|
2天前
|
数据处理 开发者 Python
Python编程中的列表推导式:简洁而强大的工具
【9月更文挑战第35天】在Python的众多特性中,列表推导式以其简明扼要和强大功能脱颖而出。本文不仅将介绍列表推导式的基础知识,还将探讨其背后的逻辑,并辅以实际代码示例。无论你是初学者还是有经验的开发者,都能从中获取新的见解和应用技巧。
12 5
|
3天前
|
机器学习/深度学习 数据挖掘 开发者
探索Python编程:从基础到实战
【9月更文挑战第34天】在这篇文章中,我们将一起踏上Python编程的旅程。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基础语法开始,逐步深入到更复杂的主题,如面向对象编程和网络应用开发。我们还将探讨如何在实际项目中应用这些知识,以及如何通过持续学习和实践来提高你的编程技能。让我们一起探索Python的世界,发现它的无限可能!
|
4天前
|
机器学习/深度学习 人工智能 数据可视化
Python比较适合哪些场景的编程?
Python比较适合哪些场景的编程?
15 7
|
1天前
|
机器学习/深度学习 存储 人工智能
Python 编程之旅:从基础到进阶
【9月更文挑战第35天】在这篇文章中,我们将一起探索 Python 编程的奇妙世界。无论你是初学者还是有一定经验的开发者,都能在这里找到有价值的内容。我们将从 Python 的基本语法开始,逐步深入到面向对象编程、函数式编程等高级主题。此外,我们还会介绍一些实用的库和框架,帮助你更高效地完成各种任务。让我们一起踏上这段激动人心的 Python 编程之旅吧!
|
3天前
|
大数据 Python
Python 高级编程:深入探索高级代码实践
本文深入探讨了Python的四大高级特性:装饰器、生成器、上下文管理器及并发与并行编程。通过装饰器,我们能够在不改动原函数的基础上增添功能;生成器允许按需生成值,优化处理大数据;上下文管理器确保资源被妥善管理和释放;多线程等技术则助力高效完成并发任务。本文通过具体代码实例详细解析这些特性的应用方法,帮助读者提升Python编程水平。
23 5
|
3天前
|
程序员 数据库 开发者
探索Python编程之旅:从基础到进阶
【9月更文挑战第34天】本文将引导你踏上Python编程的奇妙旅程,从最初的安装和运行第一个程序开始,逐步深入到面向对象编程、文件操作和网络编程等高级主题。我们将通过代码示例和清晰的步骤解释,帮助你构建起对Python语言的深刻理解,并鼓励你在遇到问题时主动寻找解决方案,培养解决问题的能力。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的内容和启发。
|
4天前
|
数据采集 机器学习/深度学习 人工智能
Python编程之旅:从基础到精通
【9月更文挑战第32天】本文将带你进入Python的世界,从基础语法到高级特性,再到实战项目,让你全面掌握Python编程技能。无论你是初学者还是有一定基础的开发者,都能在这篇文章中找到适合自己的学习路径和方法。让我们一起踏上Python编程之旅,开启一段充满挑战和乐趣的学习历程吧!
下一篇
无影云桌面