将 Ruby 字符串转换为 utf-16be | Ruby Python 的等效代码

Convert Ruby String to utf-16be | Ruby Equivalent Code of Python

我正在尝试使用 SMS 网关发送孟加拉语文本。但是它通常不支持孟加拉语文本。他们的文档说我需要将 SMS 字符串转换为 utf-16be;没有任何其他细节。但是,我发现 Python 实现了我正在寻找的 here

>>> message = 'আমার সোনার বাংলা'
>>> message
'আমার সোনার বাংলা'

>>> message.encode('utf-16-be')
b'\t\x86\t\xae\t\xbe\t\xb0\x00 \t\xb8\t\xcb\t\xa8\t\xbe\t\xb0\x00 \t\xac\t\xbe\t\x82\t\xb2\t\xbe'

>>> message.encode('utf-16-be').hex()
'098609ae09be09b0002009b809cb09a809be09b0002009ac09be098209b209be'

>>> message.encode('utf-16-be').hex().upper()
'098609AE09BE09B0002009B809CB09A809BE09B0002009AC09BE098209B209BE'


我想在这里完成两件事:


到目前为止,我想出了以下

text = 'আমার সোনার বাংলা'.encode("UTF-16BE")
p text
#output-> "\u0986\u09AE\u09BE\u09B0 \u09B8\u09CB\u09A8\u09BE\u09B0 \u09AC\u09BE\u0982\u09B2\u09BE"

通常使用 unpack 方法完成从字符串到字节的转换:

# ref unpack documentation for specifics, but I use 'H*' here for hex
message.encode('utf-16-be').unpack('H*')