PHP中有多字节字符串函数用于处理多字节字符串(例如:CJK脚本)。比如,我想通过使用蟒蛇len
函数计算在多字节串多少个字母,但它返回一个不准确的结果(即在此字符串字节数)如何在Python中处理多字节字符串
japanese = "桜の花びらたち"
print japanese
print len(japanese)#return 21 instead of 7
是否有任何包装或功能像PHP中的mb_strlen?
PHP中有多字节字符串函数用于处理多字节字符串(例如:CJK脚本)。比如,我想通过使用蟒蛇len
函数计算在多字节串多少个字母,但它返回一个不准确的结果(即在此字符串字节数)如何在Python中处理多字节字符串
japanese = "桜の花びらたち"
print japanese
print len(japanese)#return 21 instead of 7
是否有任何包装或功能像PHP中的mb_strlen?
# Encoding: UTF-8
japanese = u"桜の花びらたち"
print japanese
print len(japanese)
注意,在前面的字符串的u
。
要字节字符串转换成Unicode,使用decode
:"桜の花びらたち".decode('utf-8')
尝试将其转换为unicode
第一:
print len(japanese.decode("utf-8"))
给7.您正在使用的UTF-8编码字符串,它确实有21个字节。
UnicodeEncodeError:'ascii'编解码器无法编码0-6位置的字符:序号不在范围内(128):( – hungneox
对不起,您的解决方案也适用> _ <这是我的错 – hungneox
删除错误:
UnicodeEncodeError :'ascii'编解码器不能编码0-6位置的字符:序号不在范围内(128):(
加入以下散列行:
#编码:UTF-8
–
agathodaimon
对于完整性:这不再是在Python 3对所有字符串原生支持Unicode的问题。 – poke