在Android中发送一条未知字符替换为"替换字符"的短信(UTF-16)

hev*_*evy 6 unicode sms android gsm utf-16

我在发送短信时遇到问题.我创建了一个字符串,其中包含"\ uFDE8"(它是65000)等字符.当我将其转换回来时,我得到65000.它看起来不错.

但是当我发送带有此字符串的短信并收到消息时,我将此字符替换为"\ uFFFD"(65533).这个角色被称为"替换角色".

为什么我的角色被替换了?

//编辑我的解决方案是将字符串的每个字符串转换为7位然后发送它.您必须注意到gms字母与ascii不同(某些字符需要替换为另一个字符).祝好运!

mvp*_*mvp 5

根据Unicode表,U+FDE8不是有效的代码点.

正如您所料,任何无效字符都会被您的提供商的SMS系统替换为 ,它本身就是一个有效的Unicode字符,但只是为了表明原始字符无法正确表示.U+FFFD REPLACEMENT CHARACTER

  • 根据Unicode 6.1 [图表](http://www.unicode.org/charts/PDF/UFB50.pdf),`U + FDE8`是非字符的.*这些代码允许用于过程内部使用,但不允许进行交换*. (2认同)