如何在Python中处理多字节字符串

时间:2011-12-01 18:46:10

标签: python string multibyte multibyte-functions

PHP中有多字节字符串函数来处理多字节字符串(例如:CJK脚本)。例如,我想通过在python中使用len函数计算多字节字符串中的字母数,但它返回一个不准确的结果(即此字符串中的字节数)

japanese = "桜の花びらたち"
print japanese
print len(japanese)#return 21 instead of 7

PHP中是否有像mb_strlen这样的包或函数?

2 个答案:

答案 0 :(得分:9)

使用Unicode strings

# Encoding: UTF-8

japanese = u"桜の花びらたち"
print japanese
print len(japanese)

请注意字符串前面的u

要将字节字符串转换为Unicode,请使用decode"桜の花びらたち".decode('utf-8')

答案 1 :(得分:2)

首先尝试将其转换为unicode

print len(japanese.decode("utf-8"))

给出7.你正在处理utf-8编码的字符串,它实际上有21个字节。