我的问题是sub
字段content://mms-sms/conversations/
似乎有错误的编码。字母数字字符似乎可以正确显示,但韩文字母看起来像这样:
. 我一直在使用谷歌消息应用程序,所以彩信是由它保存的。我在两台运行 Android 10 和 12(谷歌官方 ROM)的设备上测试过,现象是一样的。这种韩国彩信的主题在 Google 消息本身上看起来是正确的。但是sub
内容解析器返回的字段看起来像奇怪的破盒子和带重音的拉丁字母,这通常发生在您使用西欧编码解码由韩语编码编码的字符串时。我试图找出光标是否包含编码信息,并且有sub_cs
,正如我所料,这是“主题字符集”。那个值是 106。我查了这个页面,106 的意思是“UTF-8”。该主题显然不是以 UTF-8 编码的。
这个问题的原因是什么,解决方案是什么(以编程方式检索正确的主题)?我的猜测是它可能是 Google Message 的错误,也可能是 Android 的错误。如果是前者,Google Messages 可能以不同于 UTF-8 的编码保存主题,并且它知道正确的编码(因为它可以正确显示主题)但在系统的 MMS 数据库中错误地将其标记为 UTF-8,以便 ContentResolver 认为它是 UTF-8 并对其进行解码。如果是后者,Google Messages 会正确标记编码,但 ContentResolver 会忽略它并像 UTF-8 一样处理。