1 votes

Envoyer des emoji par SMS avec UTF-8 (plutôt qu'UTF-16) ?

En cherchant à savoir pourquoi les emoji provoquaient l'envoi de messages, même courts, en plusieurs morceaux, je suis tombé sur cette question Il explique que cela se produit parce qu'ils sont codés en UTF-16 plutôt qu'en ascii.

Ma question est la suivante : existe-t-il un moyen de les envoyer en UTF-8 ? La plupart des messages que j'envoie contiennent beaucoup de lettres latines et très peu d'autres caractères, donc ils devraient tous être beaucoup plus courts s'ils sont encodés en UTF-8 : est-ce possible ?

J'utilise Cyanogenmod 11-M12 (Android 4.4.4) et, au cas où cela aurait une importance, j'utilise le clavier SwiftKey.

Si ce n'est pas possible, est-ce une question de protocole SMS, ou est-ce dû à l'OS, voire au clavier ?

Merci beaucoup !

0 votes

C'est une question de pages de code que le système d'exploitation utilise. La page 8 bits (0-255) est déjà remplie de lettres, de symboles et de caractères de contrôle courants. Les langues non latines se rabattent également sur l'UTF-16 ou sur leur page de code personnalisée. Le problème, c'est que l'UTF-16 est généralement utilisé pour surmonter les problèmes de conversion afin que tout le monde reçoive le même message et non pas un ramassis de caractères aléatoires alignés.

3voto

Lilleman Points 46

Malheureusement, il s'agit d'une limitation du protocole SMS.

Le jeu de caractères "ascii" n'est pas celui auquel nous sommes habitués dans le monde de l'informatique, il s'agit plutôt d'un jeu de caractères à 7 bits (ou GSM 03.38). https://en.wikipedia.org/wiki/GSM_03.38 ) et très limité.

Si un seul caractère est utilisé en dehors de ce jeu de caractères de 7 bits, il est basculé en UCS2 (pour plus d'informations sur le fait que l'UCS2 n'est pas exactement l'UTF-16, cliquez ici). https://en.wikipedia.org/wiki/UTF-16 ).

Avec 7 bits, chaque caractère prend 7 bits (doh), et avec UCS2 chaque caractère prend 16 bits.

En codant certaines intégrations SMPP (le protocole SMS), j'ai vu un support sporadique pour d'autres jeux de caractères, mais je ne pense pas que cela soit adopté dans la nature.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X