发送一条短信(UTF-16),其中一个未知字符被一个“替换”;替换字符“;在Android中

发送一条短信(UTF-16),其中一个未知字符被一个“替换”;替换字符“;在Android中,android,unicode,sms,gsm,utf-16,Android,Unicode,Sms,Gsm,Utf 16,我在发送短信方面有问题。我创建了一个包含“\uFDE8”(65000)这样的字符的字符串。当我把它转换回来,我得到65000。看起来不错 但是,当我发送带有此字符串的短消息并收到消息时,我会将此字符替换为“\uFFFD”(65533)。此字符称为“替换字符” 为什么我的角色被替换了 //编辑 我的解决方案是将字符串的每个字符转换为7位,然后发送它。您必须注意,gms字母表与ascii不同(需要将一些字符替换为另一个字符)。祝你好运 根据Unicode表,U+FDE8不是有效的码点 正如您所料,任

我在发送短信方面有问题。我创建了一个包含“\uFDE8”(65000)这样的字符的字符串。当我把它转换回来,我得到65000。看起来不错

但是,当我发送带有此字符串的短消息并收到消息时,我会将此字符替换为“\uFFFD”(65533)。此字符称为“替换字符”

为什么我的角色被替换了

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

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


正如您所料,任何无效字符都会被提供商的SMS系统替换为
替换字符
�, 它本身是一个有效的Unicode字符,但它的存在只是为了表明原始字符无法正确表示。

代码点是有效的,但未分配,即没有为其分配字符(到目前为止)。根据Unicode 6.1,
U+FDE8
是非字符的。这些代码允许在工艺内部使用,但不允许交换。