我正在处理这样一种情况:我需要使一个字符串适合屏幕上分配的间隙,因为我使用的是unicode len(),而slices[]显然是在字节上工作,结果我把unicode字符串剪得太短了,因为€在屏幕上只占一个空间,而len()或slices[]只占两个空间。
我已经正确地设置了编码头,并且我愿意使用slices或len()以外的其他方法来处理这个问题,但我真的需要知道字符串将占用多少空格,以及如何将其剪切到可用的空格。
$cat test.py
# -*- coding: utf-8 -*-
a = "2 €uros"
b = "2 Euros"
print len(b)
print len(a)
print a[3:]
print b[3:]
$python test.py
7
9
��uros
uros发布于 2011-04-18 03:05:09
您不是在那里创建Unicode字符串;而是使用UTF-8编码(如您所见,这是可变长度的)创建字节字符串。您需要使用u"..." (或u'...')形式的常量。如果这样做,就会得到预期的结果:
% cat test.py
# -*- coding: utf-8 -*-
a = u"2 €uros"
b = u"2 Euros"
print len(b)
print len(a)
print a[3:]
print b[3:]
% python test.py
7
7
uros
uroshttps://stackoverflow.com/questions/5695714
复制相似问题