J’ai utilisé avec joie et délectation le plugin enkoder (1), jusqu’à ce
que je ne m’aperçoive qu’il ne fonctionne pas du tout avec les
caractères accentués (le fameux problème du support d’UTF-8 visiblement).
Est-ce que quelqu’un aurait réussi à régler le problème ? D’une manière
générale, qu’est-ce que vous utilisez comme solution pour protéger les
adresses emails “publiques” ?
J’ai utilis� avec joie et d�lectation le plugin enkoder (1), jusqu’� ce
que je ne m’aper�oive qu’il ne fonctionne pas du tout avec les
caract�res accentu�s (le fameux probl�me du support d’UTF-8 visiblement).
le problème.
Je ne connais pas ton plugin enkoder même si j’en devine bien
l’utilité, en revanche je peux te dire que tu n’auras pas de problème
avec l’utf8 pour des adresses mails tout simplement parce que un
email est constitué de caractère ascii et donc a la même
représentation binaire qu’en utf8.
Donc utf8 ou pas ta fonction d’encodage n’y verra que du feu quelle
que soit son algorithme.
En revanche pour du texte il faut faire gaffe, si l’encodage se fait
sur des bytes genre base64 ou autre il faut bien faire attention
d’encoder et de décoder dans le même charset sinon ca va coincer.
Le Sam 16 décembre 2006 17:22, Renaud Morvan a écrit :
Je ne connais pas ton plugin enkoder même si j’en devine bien
l’utilité, en revanche je peux te dire que tu n’auras pas de problème
avec l’utf8 pour des adresses mails tout simplement parce que un
email est constitué de caractère ascii et donc a la même
représentation binaire qu’en utf8.
C’est potentiellement faux. Tu peux techniquement avoir n’importe quoi
avant l’arobase. D’ailleurs en asie il arrive qu’ils ne s’en privent
pas.
Maintenant reste à savoir si tu rencontreras le cas.
Ceci dit si je veux me créer une adresse en éric.daspet@ rien ne m’en
empêche. Ni les logiciels, ni les rfc.
privent pas.
Maintenant reste à savoir si tu rencontreras le cas.
Ceci dit si je veux me créer une adresse en éric.daspet@ rien ne m’en
empêche. Ni les logiciels, ni les rfc.
Héhéhé tu aimes couper les cheveux en 4, toi qui utilise rails sur
une base régulière tu devrais savoir que le framework n’a pas
l’habitude de gérer ce genre de subtilité
Mais pour continuer dans le troll parce que c’est amusant aussi, que
ce soit dot-atom ou quoted-string la rfc spécifie bien que la local-
part est représenté en ascii. C’est coté client que se passe
éventuellement la conversion charset -> quoted-string
D’ailleurs le problème que tu soulèves se présente également pour les
noms de domaines accentués qui le sont peut être sur le papier mais
dans la réalité technique tout géré en ascii (cf firefox qui fait la
transcription dans sa barre d’adresse pour éviter le phishing).
Résultat si tu stockes les emails avec des charactères spéciaux sans
les convertir tu repousses cette conversion jusqu’au client mail et
tu n’as qu’à croiser les doigts qu’il sache le débrouiller, ce qui me
semble très loin d’être sage surtout qu’à ca il faut ajouter l’objet
de ce plugin c-a-d décoder à la volée l’adresse en javascript (dont
l’interprétation dépendra elle du navigateur).
Bref ca n’est probablement pas une très bonne idée et il va forcement
y avoir des combinaisons navigateur/client mail qui vont poser
problème, my 2 cents
Pour revenir dans le sujet, j’utilise le plugin enkoder,
indispensable pour communiquer des adresses e-mail plus “user
friendly” que “nom [at] domaine [point] com” et j’ai le même
problème, qui est le problème de fond de la gestion des caractères
accentués sous rails : les fonctions liées au chaînes de caractère
(comme upcase, downcase, length, etc) n’y sont pas adaptées et, à
ma connaissance, il n’y a pas de solution miracle.
Je me permets d’ajouter que c’est une spéculation non fondée, si on
passe 1 minute à regarder le code du plugin on s’aperçoit bien que le
plugin à un problème algorithmique d’encodage/décodage de string ce
qui n’a rien de générique à rails ou à la manière de ruby de traiter
(ou pas) l’utf8 et consort.
Le gars encode avec des permutations byte à byte en ruby et décode
caractère par caractère en javascript forcement pour les jeux de
caractères multibyte ca ne peut pas marcher pour les caractères
encodé sur plusieurs bytes.
Donc rien à voir avec une quelquonque faiblesse du support des jeux
multibyte par ruby (dont l’aspect problématique est injustement
surestimé IMHO).
Sinon pour répondre à ton interrogation je trouve ca pour ma part
c’est acceptable sauf que s’il était possible de te contenter de
l’email ca éviterait d’avoir un qui traine et invalide ta
sémantique html.
On 26 Dec 2006, at 21:32, Renaud Morvan wrote:
Je me permets d’ajouter que c’est une spéculation non fondée, si on
passe 1 minute à regarder le code du plugin on s’aperçoit bien que
le plugin à un problème algorithmique d’encodage/décodage de string
ce qui n’a rien de générique à rails ou à la manière de ruby de
traiter (ou pas) l’utf8 et consort.
Au temps pour moi! Le recours à ce plugin avec les caractères
accentués est donc d’autant plus problématique. Car si je te
comprends bien, solutionner le problème équivaudrait à réécrire
l’algorithme d’encodage, et ce même si on a solutionné la question du
charset au niveau de l’application (il existe un plugin qui permet
d’utiliser les manipulations de chaînes de caractères avec du
multibyte : http://julik.nl/code/unicode-hacks/).
Sinon pour répondre à ton interrogation je trouve ca pour ma part
c’est acceptable sauf que s’il était possible de te contenter de
l’email ca éviterait d’avoir un qui traine et invalide ta
sémantique html.
Malheureusement ce n’est pas possible, car la méthode enkode renvoie
une balise script : impossible de l’utiliser pour renvoyer une valeur
de balise. Je vais chercher autre chose pour que la page soit validée.