栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用特殊字符时,Python返回错误的字符串长度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用特殊字符时,Python返回错误的字符串长度

UTF-8是一种unipre编码,它对特殊字符使用多个字节。如果您不希望编码字符串的长度,只需对其进行解码并

len()
unipre
对象(而不是
str
对象!)上使用。

这里有些例子:

>>> # creates a str literal (with utf-8 encoding, if this was>>> # specified on the beginning of the file):>>> len('ë́aúlt') 9>>> # creates a unipre literal (you should generally use this>>> # version if you are dealing with special characters):>>> len(u'ë́aúlt') 6>>> # the same str literal (written in an enpred notation):>>> len('xc3xabxccx81axc3xbalt') 9>>> # you can convert any str to an unipre object by decoding() it:>>> len('xc3xabxccx81axc3xbalt'.depre('utf-8')) 6

当然,您也可以

unipre
像在对象中那样访问对象中的单个字符
str
(它们都继承自对象
basestring
,因此具有相同的方法):

>>> test = u'ë́aúlt'>>> print test[0]ë

如果您开发本地化的应用程序,通常最好在

unipre
内部仅使用-
objects,方法是解码得到的所有输入。工作完成后,您可以再次将结果编码为’UTF-8’。如果坚持这一原则,您将永远不会看到服务器因任何内部错误而崩溃
UnipreDepreError
;)

PS:请注意,

str
unipre
数据类型在Python 3中已发生了显着变化。在Python
3中,只有unipre字符串和纯字节字符串不能再混合使用。这应该有助于避免unipre处理的常见陷阱…

问候克里斯托夫



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号