#-*-coding:UTF-8 -*-
Python的ASCII, GB2312, Unicode , UTF-8
关键字: python ASCII GB2312 Unicode UTF-8
ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127
Unicode分为UTF-8和UTF-16。UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理。
Python 从 2.2 开始支持 Unicode ,函数 decode( char_set )可以实现 其它编码到 Unicode 的转换,函数 encode( char_set )实现 Unicode 到其它编码方式的转换。
比如 ("你好").decode( "GB2312") 将得到 u'\u4f60\u597d',即 "你"和“好"的 Unicode 码分别是 0x4f60 和 0x597d
再用 (u'\u4f60\u597d').encode("UTF-8") 将得到 '\xe4\xbd\xa0\xe5\xa5\xbd',它是 “你好”的UTF-8编码结果。
python中使用 unicode的关键:unicode是一个类,函数unicode(str,"utf8")从utf8编码(当然也可以是别的编码)的字符串str生成 unicode类的对象,而函数unc.encode("utf8")将unicode类的对象unc转换为(编码为)utf8编码(当然也可以是别的编码)的字符串。于是,编写unicode相关程序,需要做的事情是
* 获取数据(字符串)时,用unicode(str, "utf8")生成unicode对象
* 在程序中仅使用unicode对象,对程序中出现的字符串常量都以u"字符串"的形式书写
* 输出时,可将unicode对象转换为任意编码输出,使用str.encode("some_encoding")
>>> unicode("你好", "utf8")
u'\u4f60\u597d'
>>> x = _
>>> type(x)
<type 'unicode'>
>>> type("你好")
<type 'str'>
>>> x.encode("utf8")
'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> x.encode("gbk")
'\xc4\xe3\xba\xc3'
>>> x.encode("gb2312")
'\xc4\xe3\xba\xc3'
>>> print x
你好
>>> print x.encode("utf8")
你好
>>> print x.encode("gbk")
???
以上是测试结果(Ubuntu 6.06,locale为utf8),注意type(x)和type("你好")的区别。从编码上可以看出utf8编码与gbk不同。在utf8的 locale设置下,打印x按该环境变量编码(我猜我猜我猜猜猜),而打印x.encode("gbk")则是乱码。
分享到:
相关推荐
OpenCV(开源计算机视觉库)是计算机视觉和机器学习领域广泛应用的一个强大工具,它支持多种编程语言,包括Python。在给定的压缩包"opencv-python-4.5.5-cp311-cp311-win-amd64.zip"中,包含的是OpenCV的Python绑定...
- 实时语音通话应用:在 VoIP 应用中,Python Opus 可用于两端的语音编码和解码,保证语音质量并减少网络带宽需求。 - 音频流传输:在网络直播或音频分享平台中,使用 Opus 进行编码可以提高传输效率,同时保持良好...
《Python应用技术》课程是一门全面讲解Python编程的课程,旨在为学生提供Python语言的基础知识和实际应用开发技能。这门课程总共64学时,包括32个理论课时和32个实践课时,内容涵盖了从Python编程基础到高级主题,...
为了解决CNSDTF-DEM格式的DEM数据在实际工作中的应用问题,作者提出了一种基于Python的转换方法。Python语言因其易读性和丰富的库支持,非常适合进行数据处理和转换工作。通过使用Python遍历文件目录,并读取单个DEM...
9. **unicode2koi8r.py**:这可能是一个将Unicode编码转换为KOI8-R编码的脚本,涉及Python的编码和解码功能,特别是对非ASCII字符集的支持。 10. **autosize.py**:根据名字推测,这个脚本可能实现了自动调整尺寸的...
在实际应用中,为了方便存储和传输,编码后的二进制字符串通常会被转换成十进制或十六进制表示,并添加适当的头部信息(如编码表的长度和编码表本身),以便解压时能重建编码表。 以上就是一个基于Python的香农编码...
4. 编码转换为字符 如果我们知道一个符号的 Unicode 编码,可以使用 chr() 函数将其转换为字符。例如,chr(25105) 将返回汉字“”。 5. 字符串的比较 在 Python 中,可以使用比较运算符来比较两个字符串的大小。...
6. **字符串编码解码**:可能包含了对不同字符编码的支持,如UTF-8、GBK等,方便在不同编码环境中处理字符串。 7. **统计分析**:可能包含对字符串的统计功能,如计算重复字符、最长子串、单词计数等,适用于文本...
在Python应用开发中,二进制文件的处理是不可或缺的一部分。二进制文件与文本文件的主要区别在于,它们不依赖于特定的字符编码,而是直接处理字节流。以下是对二进制文件操作的详细说明: 1. **二进制文件的打开...
这个名为"python-ffmpeg-video-streaming"的库是Python与FFmpeg交互的桥梁,允许开发者在Python环境中轻松地进行视频流处理。在本文中,我们将深入探讨该库的细节,包括其功能、用法以及如何从PyPI官网下载和安装。 ...
Python中的`sklearn`库提供了方便的`preprocessing`模块,其中的`OneHotEncoder`类用于实现这一编码过程。 首先,理解one-hot编码的作用至关重要。在回归、分类和聚类等任务中,算法往往需要计算特征之间的距离或...
在Python中,我们可以使用`pandas`库中的`get_dummies()`函数实现独热编码。首先,我们需要导入pandas库: ```python import pandas as pd ``` 假设我们有一个DataFrame `df`,其中包含一个名为`color`的列,包含...
Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方法,常用于在电子邮件等文本环境中传输非ASCII字符。Python作为一种功能强大的编程语言,内置了对Base64编码和解码的支持,使得开发者可以轻松地处理这类...
在IT行业中,Python是一种广泛应用的编程语言,尤其在GUI(图形用户界面)开发和网络通信方面。本项目“python聊天室---pyqt5+socket+Thread聊天室”旨在教授如何利用Python的PyQt5库创建一个聊天室应用,并通过...
然而,msgpack_python-0.2.0-py2.7-win32.egg是一个Egg格式的安装包,这种格式在Python社区中并不常用,但它是为了解决特定环境(如特定Python版本和操作系统)的依赖问题。要安装此Egg包,可以将文件移动到Python的...
在描述中,我们看到文档的类型是“应用专题”,其编号为“第三方交互07”,这可以暗示该文档可能是该系列教程的第七篇,专注于在应用程序开发中如何使用天软平台与Python进行交互。 接下来,我们可以从文档的标签...
此外,它直接操作原始字节或字符串,避免了Unicode编码转换的额外负担。 2. **API兼容**:尽管`rapidjson`试图保持与Python内置`json`模块的API兼容,但还是有一些差异。例如,它不支持`json.JSONDecoder`和`json....
Python 2.1 中的数据库特性包括数据库连接、SQL 语句执行、数据类型转换等。 Web 开发 --------- Python 2.1 支持 Web 开发,例如使用 Tkinter 和 wxPython 等库创建图形用户界面,使用 XML 解析和生成 XML 文档...
在这个Python实现中,我们将深入探讨算术编码的基本原理、Python编程实现的关键步骤以及如何进行编码和解码。 1. **算术编码的基本概念** 算术编码的核心思想是将输入符号的概率分布转化为一个连续的区间,通过...
这个库主要面向Python开发人员,特别是那些在后端开发中处理地理信息和数据分析的专家。 **Python库的基本概念** Python库是一组预编写好的函数或模块,它们提供了特定功能,帮助开发者快速构建应用程序。通过引...