我在python中有这个长的unicode字符串。在这个unicode字符串中,我想先读取1000个字节。
使用案例:我正在尝试使用plivo API作为短信在手机号码上发送电子邮件正文内容。此文本消息最多占用1000个字节。
所以我需要从电子邮件正文内容中截断前1000个字节。
如何做到这一点?
答案 0 :(得分:2)
如果您需要前1000个字节,那么您需要先对 的Unicode值进行编码,因为字节数会随所选的编码而变化。
然后只切片前1000个字节:
encoded = unicodevalue.encode('utf8')
sliced = encoded[:1000]
碰巧,Plivo Send Message API正是如此; 1000字节的UTF-8编码数据。您可能想要进一步截断数据以不切断多字节UTF-8字符:
encoded = unicodevalue.encode('utf8')
sliced = encoded[:1000]
while True:
try:
sliced.decode('utf8')
except UnicodeDecodeError:
sliced = sliced[:-1] # remove one invalid byte
else:
break