需求: python将字符串按照字节数来截取,
找了很多文章都是有关联但又不能完全解决此需求,自己总结一下。
遇到的需求是:推送目标有字节数限制 最大4096字节,但我推送的是个字符串(包含中/英文、特殊符号),且想要尽可能多的将文本内容推送出去,所以按照字符串截取时 不想取太少,取太多又偶尔会超出限制。
下面列出代码:
str_txt = '测试文本ceshi'
cut_bytes = str_txt.encode('utf-8')
cut_tmp = cut_bytes[:900] # 此处截取bytes长度900
cut_res = cut_tmp.decode('utf-8', errors='ignore') # 按bytes截取时有小部分无效的字节,传入errors='ignore'忽略错误
print('cut_res 长度 字节数', len(cut_res), len(cut_res.encode()))
具体思路为:先将str转换成bytes,再截取,然后转换成utf-8输出
参考文章:
python截取中文字符串_架构和代码-优快云博客_python截取中文字符串 (此文章给了我启发)