Il y a 3 ans (déjà), je vous avais rédigé quelques articles sur le HTC Magic, l’un des premiers Google Phone apparus sur le marché des smartphones. A l’époque, j’avais évoqué un soucis avec certains caractères spéciaux (le “ç” notamment) qui faisait tout d’un coup exploser le nombre de caractères total du message.

J’ai toujours pensé que ce “bug” provenait de la machine elle-même et je n’ai pas poussé plus loin mes recherches. Mais, aujourd’hui, grâce à un récent message de Damien, tout s’éclaire enfin…

Lorsque l’on envoie un SMS sur le réseau de son opérateur, tous les caractères du message sont codés sur 7 bits, un bit correspondant à l’information binaire de base. La taille maximale pour un message, chez tous les opérateurs, étant de 1120 bits, il est donc possible d’envoyer normalement 160 caractères maximum (1120/7=160).

Mais le problème avec cet encodage sur 7 bits, c’est qu’il ne contient pas tous les caractères utilisés dans la langue française. Les 26 lettres et les chiffres de 0 à 9 sont bien présents, tout comme le “%” ou le “@” mais il manque des caractères bien utiles comme le “oe”, le “â”, le “ë” et surtout le “ç” qui me posait des soucis.

Dès que vous utilisez un caractère qui ne fait partie du tableau ci-dessus, l’encodage ne se fait plus en 7 bits mais sur 16 bits ! Le nombre de caractères disponibles pour votre message s’en trouve diminué car : 1120/16=70 !

C’est donc pour cela que sur certains smartphones (tous ?), alors que vous pensez envoyer un message, ce sont deux ou trois qui partent, et qui vous sont facturés !

Ce sujet reste d’actualité puisque ça se passe toujours comme cela sur mon HTC Magic, qui commence d’ailleurs à vieillir un peu, je vous l’accorde. Et sur vos smartphones, cela donne quoi ?

Un super merci à Damien grâce à qui je vais me coucher un peu moins idiot ce soir… :wink:

{lang: 'fr'}