擅长:python、mysql、java
<p>在Python 2“窄”构建中,它非常简单:</p>
<pre><code>>>> emoticon = u'\U0001f498'
>>> map(ord,emoticon)
[55357, 56472]
</code></pre>
<p>这在Python 2(窄版和宽版)和Python 3中都适用:</p>
^{pr2}$
<p>输出:</p>
<pre><code>(55357, 56472)
</code></pre>
<p>对于任意长度的字符串,UTF-16打印的是:</p>
<pre><code>from __future__ import print_function,division
import struct
def utf16words(s):
encoded = s.encode('utf-16le')
num_words = len(encoded) // 2
return struct.unpack('<{}H'.format(num_words),encoded)
emoticon = u'ABC\U0001f498'
print(utf16words(emoticon))
</code></pre>
<p>输出:</p>
<pre><code>(65, 66, 67, 55357, 56472)
</code></pre>