Bonjour à tous.
Contexte : Je suis sur un site web avec base de données mysql, php, etc.... Diverses fiches (forms) sont à saisir, avec potentiellement des apostrophes dans les champs texte.
D'un bout à l'autre de la chaîne de production du site (csv, db phpmyadmin, champs mysql, meta html, en-têtes javascript...) TOUT est codé en UTF-8 (unicode_ci).
La séquence de traitement d'une saisie est simple et courte : 1) saisie manuelle => 2) contrôles JS => 3) submit si OK 4) => réception d'un $_POST dans mon PHP.
Voici le mystère : dans les contrôles JS je transforme tous les "simple-quote" (code ASCII 39) en "right single quotation mark" (code UTF-8 U+2019 HTML ’). Autrement dit : je remplace chaque apostrophe "simple" en apostrophe "littéraire" (c plus joli). Ceci par une commande JS : data = data.replace ("'","’")
En sortie de JS mes tests et le visuel me confirment que la transformation a bien été effectuée. Une poignée de millisecondes plus tard je récupère le $_POST entrant en PHP : un simple test me montre que mes apostrophes "littéraires" ont été re-transformées en simple-quote (code ASCII 39).
Là.... je sais plus koi faire! Une idée ?
Merci à tous
Partager