使用Python计算UTF8字符

2024-09-24 22:31:41 发布

您现在位置: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ąka这样的名称,dl变量的值应该是11,但是它是13,因为ś和ą符号被计算成两个。 是否可以强制len()函数将其计算为1?在


Tags: 用户脚本示例编码inputrawlenutf8
3条回答

在Python 2中。*使用decode

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

您正在使用str,而您应该使用unicode

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

将数据从utf8解码为unicode对象。然后得到unicode的长度。在

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

相关问题 更多 >