您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python拉丁字符和Unicode

Python拉丁字符和Unicode

您没有unicode对象,但是具有UTF-8编码文本的字节字符串。印制例如字节串到你的终端 可能 ,如果你的终端被配置为处理UTF-8文本。

当转换一个列表串,该列表的内容被示出为 表示 ;repr()函数的结果。字符串对象的表示形式对可打印ASCII范围以外的任何字节使用转义码;\n例如,换行符被替换。您的UTF-8字节由\xhh转义序列表示。

如果您使用Unicode对象,表示将使用\xhh逃逸 ,但在Latin-1的范围内(外ASCII)仅Unicode代码点(其余都显示\uhhhh\Uhhhhhhhh逃逸取决于它们的代码点); 在打印时,Python会自动将这些值编码为适合终端的正确编码:

>>> u'université'
u'universit\xe9'
>>> len(u'université')
10
>>> print u'université'
université

将此与字节字符串进行比较:

>>> 'université'
'universit\xc3\xa9'
>>> len('université')
11
>>> 'université'.decode('utf8')
u'universit\xe9'
>>> print 'université'
université

注意,长度反映了é代码点也被编码为两个字节。顺便说一句,是我的终端\xc3\xa9在将é字符粘贴到Python会话中时向Python提供了字节,因为它已配置为使用UTF-8,并且当我定义u'..'Unicode对象文字时,Python已检测到并解码了字节。

我强烈建议您阅读以下文章,以了解Python如何处理Unicode,以及Unicode文本和编码的字节字符串之间的区别是什么:

每个软件开发人员绝对,肯定必须绝对了解Unicode和字符集(无借口!)作者:Joel Spolsky

Python的Unicode指南

Ned Batchelder的实用Unicode

python 2022/1/1 18:31:27 有206人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶