Python:将整数转换为UTF16-LE

时间:2017-03-27 07:51:38

标签: python encoding utf-16

我得到了一个29.827的整数值,我想用UTF-16-LE编码将其转换为Unicode汉字“玻璃”(U + 7483)(见http://www.fileformat.info/info/unicode/char/7483/index.htm)。

我设法将此数字转换为3字节UTF-8编码(2048以上的整数在UTF-8中为3字节)和

s ='\u%s'%hex(int_to_encode)[2:]
file.write(s.decode('unicode-escape').encode('utf-8'))
file.close()

但我发现所需的编码是UTF-16-LE。 在预期的编码中,整数表示也有3个字节(这就是为什么我认为我的第一次尝试是正确的,一个整数也是3个字节...)

非常感谢您的帮助,

亲切的问候

1 个答案:

答案 0 :(得分:2)

首先将数字转换为字符使用sudo service switchDesktop0OnIdle status(Python3)或chr()(Python2)。然后使用UTF-16-LE进行编码,您只需指定编码而不是指定UTF-8。

所以Python 2:

unichr()

在Python 2或Python 3中,您可以在打开时指定文件编码:

int_to_encode = 0x7483
s = unichr(int_to_encode)
file.write(s.encode('utf-16-le'))
file.close()

控制台会话显示:

import io
s = unichr(0x7483)
with io.open('foo', 'w', encoding='utf-16-le') as f:
    f.write(s)