首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取Unicode字符串所需的字节数

获取Unicode字符串所需的字节数
EN

Stack Overflow用户
提问于 2012-08-07 01:11:31
回答 3查看 2.2K关注 0票数 7

我有一个韩语字符串编码为统一码,如u'정정'。我如何知道需要多少字节来表示这个字符串?

我需要知道确切的字节数,因为我使用的是iOS推送通知字符串,而且它对有效负载的大小有限制。

len('정정')不起作用,因为它返回的是字符数,而不是字节数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-07 01:17:44

你需要知道你想用什么编码来测量你的字节大小:

代码语言:javascript
运行
复制
>>> print u'\uC815\uC815'
정정
>>> print len(u'\uC815\uC815')
2
>>> print len(u'\uC815\uC815'.encode('UTF-8'))
6
>>> print len(u'\uC815\uC815'.encode('UTF-16-LE'))
4
>>> print len(u'\uC815\uC815'.encode('UTF-16'))
6
>>> print len(u'\uC815\uC815'.encode('UTF-32-LE'))
8
>>> print len(u'\uC815\uC815'.encode('UTF-32'))
12

您真的想复习一下Python Unicode HOWTO,以便充分理解unicode对象和它的字节编码之间的区别。

另一篇优秀的文章是Joel Spolsky写的The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) ( Stack Overflow背后的人之一)。

票数 14
EN

Stack Overflow用户

发布于 2012-08-07 01:17:38

表示unicode所需的字节数因使用的编码而异。

代码语言:javascript
运行
复制
>>> s = u'정정'
>>> len(s)
2
>>> len(s.encode('UTF-8'))
6
>>> len(s.encode('UTF-16'))
6
>>> len(s.encode('UTF-32'))
12

如果您打算重用编码结果,我建议对其进行一次编码,然后提取其len,并在以后重用已编码的结果。

票数 4
EN

Stack Overflow用户

发布于 2012-08-07 01:17:40

确保您使用的是正确的standard encoding

如果不是这样,您可以始终使用decodedString = myString.decode('UTF-8') (如果不是UTF-8,则将UTF-8替换为您可以在上一个链接中找到的正确编码字符串),以获取len(decodedString)应返回正确数字的格式的字符串

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11832824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档