我已经观察了这个问题多年,现在不知道它来自哪里。我担心这个bug在2011年的新版Android中仍然可以观察到,并且我希望如果不解决它,我终于可以帮助我完全理解它。Android短信中的特殊字符
让我们考虑给定的(实际)情况。 “A”先生正在他的Xperia Arc(官方2.3.3)上使用索尼定制的SMS/MMS应用程序。 B先生在他的里程碑(Cyanogen 6.12,非官方2.2版)上使用了android SMS/MMS栈应用程序。他们两个都使用法语的Android(如果有的话)。
当A发送短信到B包含特殊字符,如“C”,“E”,B接收与这些字符用空格替换的消息。像“é”这样的字符工作正常。 当B发送短信到A时,一切正常。 当A发送这个短信给自己时,一切正常。
结论:这是不是移动运营商的错,因为它在一个方式,而不是其他。
所以,我首先想到,什么是错用A的自定义应用程序。用B手机中的apk替换它。一切都保持不变。我反编译的应用程序,我没有找到在哪里编码的字符串已完成。我总结错误不是来自应用程序,但从Android编码字符串的方式...
我跑了另一个测试: 我写了短信只有标准字符,像250个字符在1.5 sms。然后,我给短信添加一个“ç”。 在A的电话:柜台说它消耗了10个字符。 在B的电话:柜台说短信现在需要3 sms:字符串大小加倍!
结论: 上的电话,默认字符集包括“C”。 在B的手机上,当“ç”出现时,charset会改变,每个人物需要两倍的原始空间。 (或我错过了什么?)
问题: 为什么不同版本的Android不使用相同的默认字符集? 在Android上,这些默认字符集取决于ROM,例如? 我们可以在某处(在菜单中或直接在根源电话上)配置/更改这些字符集吗? 有没有另一种简单的方法来解决这个问题?
任何帮助,解释或经验是欢迎的。