WhatsApp 导出:是否有 unicode 表情符号压缩约定?

WhatsApp Export: Is there a unicode emoticon compressing convention?

我刚刚从 Windows Phone 迁移到 Android,我发现我无法迁移我的 WhatsApp 聊天记录(至少不容易)。现在我想使用 WhatsApp 提供的导出到邮件功能。它工作得很好,但是(主要)对于旧消息,一些表情符号没有正确传输。

查看 UTF-8 字节表示,似乎这些未显示的表情符号仅由三个字节组成,而不是四个正常字节。

示例:

08.09.2013 20:00:10: Name: 

被导出而不是

08.09.2013 20:00:10: Name: 

查看表情符号的十六进制表示(仅):

0  1  2  3  4  5  6  7  8  ... Dump
ee 81 9a ee 84 8c ee 84 9c     î.šî„Œî„œ

而不是

0  1  2  3  4  5  6  7  8  9  a  b  ... Dump
f0 9f 92 a9 f0 9f 91 bd f0 9f 92 80     💩👽💀

所以我的问题是:这只是 WhatsApp 导出过程中发生的错误,还是某种形式的压缩以减小文件大小?如果是这样,有没有解码算法可以将"compressed"版本转换成普通版本?

WhatsApp 似乎在 Unicode 的私人使用区中使用 Softbank 的表情符号编码,在 iOS 版本 2–4 中使用它们之前,它们在自己的 Unicode 块中被标准化。例如:

  • 0xEE 0x84 0x8CU+E10C
  • 的UTF-8编码
  • U+E10C 是一个私有字符,Softbank/Apple 用于编码后来被标准化为 U+1F47D () 的字符。

没有这些映射的官方列表,也不可能进行算法转换(必须构建映射 table)。但是,您可以很容易地找到 compilations of the Softbank/Unicode mappings 来构建它们之间的转换器。