本章的范围——Unicode:简要概述

未匹配的标注

对那些关心Unicode的读者来说,我也愿意提供其影响的快速小结和未来研究的指引。从一个普通的角度,ASCII是Unicode文本的一种简单形式,但只是许多可能的编码和字母表之一。来自非英语国家的文本可能使用非常不同的文本,且在存储在文件中时可能编码得非常不同。

第4章中所见:Python通过区分文本和二进制数据来解决这个问题,对文本和二进制使用不同的字符串对象类型和文件接口。这种支持根据版本系列而异(译注:因时间关系,从目前开始,只翻译3系列的,2系列的只保留原文备查,下同):

  • Python 3系列中,有三种字符串类型:str适用于Unicode文本(包括ASCII),bytes适用于二进制数据(包括编码的文本),和bytearraybytes的一种可变的变体。文件工作在两种模式下:text,它以str代表内容且实现Unicode编码;binary,它用原始字节处理且不进行数据翻译(编码)。
  • In Python 2.X, unicode strings represent Unicode text, str strings handle both 8-bit text and binary data, and bytearray is available in 2.6 and later as a back-port from 3.X. Normal files’ content is simply bytes represented as str, but a codecs module opens Unicode text files, handles encodings, and represents content as unicode objects.

尽管有这些版本差异,如果且当你不需要关心Unicode时,将发现它是相对小的扩展——一旦文本在内存中,它就是一个Python字符的字符串,支持将在本章中学习的所有基础知识。事实上,Unicode的主要区别通常在于写入写出文件所需的翻译(编码)步骤。除了那个,很大程度上只是字符串处理。

然而,再说一次,因为大多数程序员最初不需要掌握Unicode细节,我已经将大多数内容移到了第37章。当准备好学习这些更高级的字符串概念时,我鼓励你在读完这里的字符串基础材料后,去学习第4章中的预览和第37章中的Unicode和字节的完整披露。

对本章而言,将重点关注基本的字符串类型和其操作。将发现:这里学习的技术也将直接应用于Python工具集中的更高级字符串类型。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~