需求: 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截取中文字符串 (此文章给了我启发)
python bytes和str转换_triangle的技术博客-优快云博客
python split()截取一部分的字符串及按照指定字符或者长度 截取字符串_蒗若晨曦-优快云博客_python 截取字符串一部分
本文总结了如何在Python中根据字节数截取字符串。需求源于字符串推送时不能超过4096字节的限制,既要尽可能保留内容,又不能超出限制。解决方案是先将字符串转为bytes,按字节数截取后再转回utf-8编码。参考了多篇相关博客以实现这一功能。
1513

被折叠的 条评论
为什么被折叠?



