def unicode_width(string):
def char_width(char):
# ('F', 'W', 'A', 'H', 'N', 'Na')
# Ref: http://www.unicode.org/reports/tr11/tr11-14.html
w2 = ('F', 'W', 'A')
w1 = ('H', 'Na')
w = unicodedata.east_asian_width(char)
if w in w2:
return 2
elif w in w1:
return 1
else:
return 0
length = sum([char_width(c) for c in string])
return length
评论列表
文章目录