• #seenthis : je viens de modifier (radicalement) le code de détection des hastags, noms et URL. Ça permet de taguer dans des langues supplémentaires : #शम्मी_कपूर, et ça pourrait bien être plus rapide lors de l’édition des messages (ou pas...).

    En revanche, risque de bugs. (En tout cas, j’ai constaté que le Javascript et le PHP ne détectaient plus la même chose, ce qui me casse carrément les pieds.)

    • Je devine que tu passes par des expressions rationnelles pour détecter les hashtags. L’un des problèmes souvent rencontré est que la plupart des implémentations d’expressions rationnelles sont prévues pour fonctionner en 8 bits uniquement, et non en UTF-8 dont on a habituellement besoin pour faire des caractères non ASCII.

      D’après les commentaires que l’on peut lire dans le documentation, le PCRE implémenté dans le PHP a besoin d’être spécialement compilé pour permettre au modificateur « u » (minuscule) de fonctionner correctement en UTF-8 :

      http://php.net/manual/fr/reference.pcre.pattern.modifiers.php

      Pour autant, comment se comporte JavaScript à ce niveau ? Quelles différences d’implémentation selon les navigateurs ?

      Peut-être est-il prudent de faire passer les hashtags en ASCII en transformant les caractères éligibles en entités HTML équivalentes ? Ainsi, à la place de lire « #शम्मी_कपूर », il faudrait plutôt écrire « #&#2358 ;म्मी_कपूर » dans le code source HTML et adapter les expressions rationnelles en conséquence (ce qui est un boulot non trivial) ?

      (J’en profite pour noter que les entités inscrites ci-dessus sont incorrectement détectées comme tags... Pas de solution simple quand on essaye de faire son propre dialecte de messages...)