Parcours
/
Tcl
Tcl
/
Exercices
/
Microblog
Microblog

Microblog

Facile

Instructions

Tu as identifié un manque sur le marché des médias sociaux pour les publications très très courtes. Maintenant que Twitter autorise les publications de 280 caractères, les personnes qui veulent des mises à jour rapides sur les réseaux sociaux ne sont pas servies. Tu décides de créer ton propre réseau social.

Pour rendre ton produit remarquable, tu le rends extrême et tu n'autorises que les publications de 5 caractères ou moins. Toute publication de plus de 5 caractères doit être tronquée à 5.

Pour permettre à tes utilisateurs de s'exprimer pleinement, tu autorises les emoji et les autres caractères Unicode.

La tâche consiste à tronquer à 5 caractères les strings fournies en entrée.

Encodages de texte

Un texte stocké sous forme numérique doit être converti en une série d'octets. Il existe 3 façons courantes de faire correspondre des caractères à des octets.

  • ASCII permet d'encoder les caractères de la langue anglaise. Tous les caractères font exactement 1 octet.
  • UTF-8 est un encodage de texte Unicode. Les caractères font entre 1 et 4 octets.
  • UTF-16 est un encodage de texte Unicode. Les caractères font soit 2, soit 4 octets.

UTF-8 et UTF-16 sont tous deux des encodages Unicode, ce qui signifie qu'ils peuvent représenter une immense variété de caractères, notamment :

  • du texte dans la plupart des langues et écritures du monde
  • des textes historiques
  • des emoji

UTF-8 et UTF-16 sont tous deux des encodages à longueur variable, ce qui signifie que différents caractères occupent une quantité d'espace différente.

Prenons la lettre « a » et l'emoji « 😛 ». En UTF-16, la lettre occupe 2 octets, mais l'emoji en occupe 4.

L'astuce de cet exercice consiste à utiliser des API conçues autour des caractères Unicode (points de code) plutôt que des unités de code Unicode.

Remarques sur Tcl et Unicode

À partir de la version 8.1, les strings Tcl pouvaient prendre en charge les caractères Unicode sans la moindre difficulté. À l'époque, c'était une vraie avancée. Cependant, à mesure que de nouveaux caractères Unicode ont été créés, la capacité de Tcl à les prendre en charge a pris du retard.

L'implémentation interne de Tcl ne pouvait gérer que les caractères Unicode codés sur 16 bits, ce qui ne couvre que les 65 526 premiers caractères. Cette page wiki de Tcl, en particulier la discussion sur le langage « AndroWish », en donne les raisons.

Tcl 9.0 est la première version capable de prendre en charge le jeu complet de caractères Unicode. Par conséquent, cet exercice ne se résout (facilement) qu'avec la version 9.0 de Tcl.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Tcl Exercism

Prêt à commencer Microblog ?

Inscris-toi sur Exercism pour apprendre et maîtriser Tcl avec 135 exercices, et un vrai mentorat humain, le tout gratuitement.