txt = '名字12'
lenTxt = len(txt)
lenTxt_utf8 = len(txt.encode('utf-8'))
size = int((lenTxt_utf8 - lenTxt)/2 + lenTxt)
print("size = " , size ," ,urf8 = ",lenTxt_utf8," ,len = " ,lenTxt)
一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函数取得的长度,进行对比即可知道字符串内中文字符的数量,自然就可以计算出字符串的长度
print(len('中文'.encode('utf-8'))) #输出几个字节
执行结果:
6
print(len('中文'.encode('gbk')))
执行结果:
4
print(len(',。'.encode('gbk')))
执行结果:
4
2.总结
utf-8编码:一个中文包含繁体字等于三个字节,一个英文字符等于一个字节。 gbk编码:一个中文包含繁体字等于二个字节,一个英文字符等于一个字节。
参考:https://blog.csdn.net/thinbug/article/details/85167202
https://blog.csdn.net/rzlongg/article/details/89502762