Suggestion : Encodage en UTF-16 pour utiliser les récents émojis

Bonjour,

Actuellement, lorsque le meilleur charset disponible sur une clé SMS est le UCS2, le plugin encode ses messages en utf8. Cela empêche alors l’utilisation de récents emojis formés de 16 bytes.

Cela pourrait être résolu par un encodage en utf8mb4 ou utf16 mais le premier n’est pas disponible nativement sous python.

Pour régler ce problème, il suffit de modifier la fonction encodeUcs2(text) dans ressources/smsd/gsmmodem/pdu.py pour qu’elle ne soit composée que de ce simple retour :

return bytearray(text.encode("utf-16"))

:warning: Attention :warning:
Même si cela permet d’utiliser tous les emojis il reste quand même un problème : les messages étant encodés en utf16, cela utilise plus de caractères et le découpage des messages longs effectués par la fonction divideTextUcs2 est alors non-fonctionnel (messages envoyés mais illisibles). J’ai tenté de modifier MAX_MULTIPART_MESSAGE_LENGTH représentant le nombre de caractères avant découpage mais cela ne semble pas fonctionner. Je dois manquer quelque-chose.


Si il est possible d’implémenter ce changement dans le plugin officiel en prenant soin de corriger le problème de découpage précité ça serait super.

Merci d’avance,
Alexis :smiley: