繁体   English   中英

用Python计算UTF8字符

[英]Counting UTF8 characters with Python

我一直在为学生准备一个简单的Python脚本示例,但发现我很难解决以下问题。 我正在使用utf8编码,因为我希望它们使用波兰语字符,例如Ł,±,ś。 现在,该脚本应该从用户那里获取名称,并将其打印在由*制成的矩形中。 因此,这就是我要向他们展示的内容:

imie=raw_input('Podaj swoje imię: ') #Give your name

dl=len(imie)

print '*'*(dl + 4)
print '*' + ' '*(dl + 2) + '*'
print '* ' + imie + ' *'
print '*' + ' '*(dl + 2) + '*'
print '*'*(dl + 4)

问题在于,对于诸如Antoś Mąkadl变量值应为11,但应为13,因为ś和±符号被计算为两个。 是否可以强制len()函数将其计算为1?

在Python 2. *中使用decode

dl=len(imie.decode("utf-8"))

将utf8中的数据解码为unicode对象。 然后获取uni的len。

imie=raw_input('Podaj swoje imię: ').decode('utf8') #Give your name
dl=len(imie)
print dl

应该使用unicode时使用str

imie = unicode(raw_input('....').decode('utf-8'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM