红宝石十六进制涉及法语角色的弦转换



这与我在项目中使用的Ruby Gem Ruby-Smpp有关。

我有一串字节u0000xE0u0000xE2u0000xE1u0000xE8u0000xEAu0000xE9u0000xE7。它代表了收到的法语(即MO或移动启发)消息中消息的主体。此消息的实际内容是àâáèêéç。只是想知道如何将u0000xE0u0000xE2u0000xE1u0000xE8u0000xEAu0000xE9u0000xE7转换为Ruby中的àâáèêéç

我尝试了

["u0000xE0u0000xE2u0000xE1u0000xE8u0000xEAu0000xE9u0000xE7"].pack('H*')
=> "x00x02x01bnta"

['E0','E2','E1','E8', 'EA', 'E9', 'E7'].pack('H*')
=> "xE0"

两个都是错误的。

预先感谢!

看起来您的字符串是UTF-16BE编码:

str = "u0000xE0u0000xE2u0000xE1u0000xE8u0000xEAu0000xE9u0000xE7"
str.encode('UTF-8', 'UTF-16BE')
#=> "àâáèêéç"

最新更新