Специальные символы в SMS-сообщениях Android

Я наблюдал эту проблему уже много лет, не зная, откуда она взялась. . Я обеспокоен тем, что эта ошибка все еще наблюдается в новых версиях Android в 2011 году, и я надеюсь, что вы, наконец, поможете мне полностью понять ее, если не решить ее.

Давайте рассмотрим данную (реальную) ситуацию. Мистер «А» использует специальное приложение для SMS / MMS от Sony на своем Xperia Arc (официальная версия 2.3.3). Мистер Б использует приложение стека Android для SMS / MMS на своем Milestone (Cyanogen 6.12, неофициальный 2.2). Оба они используют Android на французском языке (если это имеет значение).

Когда A отправляет SMS-сообщение на B, содержащее специальные символы, такие как «ç», «ê», B получает сообщение, в котором эти символы заменены пробелом. Однако такие символы, как «é», работают нормально. Когда B отправляет sms на A, все работает нормально. Когда A отправляет это sms самому себе, все работает нормально.

Вывод: это не вина мобильного провайдера, так как он работает одним способом, а не другим.

Итак, я сначала догадался, что что-то не так с пользовательским приложением А. Заменил на апк от телефона Б. Все осталось по-прежнему. Я декомпилировал приложение и не нашел, где была сделана кодировка строки sms. Я пришел к выводу, что ошибка исходит не из приложения, а из того, как Android кодирует строки ...

Я провел еще один тест: Я написал смс только стандартными символами, что-то вроде 250 символов в 1,5 смс. Затем я добавляю «ç» к sms. На телефоне A: счетчик говорит, что он использовал 10 символов. На телефоне Б: счетчик говорит, что смс теперь занимает 3 смс: размер строки увеличился вдвое!

Вывод: На телефоне A кодировка по умолчанию включает "ç". На телефоне B, когда появляется "ç", кодировка меняется, и каждому символу требуется вдвое больше исходного места. (Или я что-то упустил?)

Вопросы: Почему разные версии Android не используют одну и ту же кодировку по умолчанию? Например, в Android эта кодировка по умолчанию зависит от ROM? Можно ли где-нибудь настроить / изменить эту кодировку (в меню или прямо на рутированном телефоне)? Есть ли другой простой способ исправить это?

Любая помощь, объяснение или опыт приветствуются :)

13
задан Paul Sonier 1 August 2011 в 20:10
поделиться