如何将python字符串转换为ucs2 hex?

app*_*pie 3 python encoding

我一直在寻找这个,虽然看起来很简单,却找不到它.我需要在url中发送一个ucs2十六进制字符串,我不知道如何将python字符串转换为ucs2 hex.有什么想法吗?

ken*_*ytm 5

>>> 'åéîøü'.encode('utf16')
b'\xff\xfe\xe5\x00\xe9\x00\xee\x00\xf8\x00\xfc\x00'
Run Code Online (Sandbox Code Playgroud)

(请注意,开头有一个BOM.使用编码'utf_16_be''utf_16_le'如果字节序是固定的.)

如果您需要十六进制数字,请使用binascii.hexlify.

>>> import binascii
>>> binascii.hexlify('åéîøü'.encode('utf16'))
b'fffee500e900ee00f800fc00'
Run Code Online (Sandbox Code Playgroud)

  • UCS-2≠UTF-16.前者是固定的,只编码代码点≤0xFFFF.后者可以编码上面的那些,你不需要鸽笼原理来弄清楚,如果UTF-16可以编码1 112 064个代码点,那么它将超过2个字节. (6认同)