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