A voir également:
- Htmlentities problème avec œ
- Oe clavier ✓ - Forum Bureautique
- Oe E dans l'O ✓ - Forum Word
- Œ majuscule - Guide
- Oe collé clavier ✓ - Forum Bureautique
- Outward oe - Forum Réseaux sociaux
4 réponses
Utilisateur anonyme
28 mai 2017 à 17:41
28 mai 2017 à 17:41
Bonjour
J'ai fait l'essai chez moi et bien sûr ça a l'air de marcher.
Ta donnée $_POST["Ville"] est-elle réellement encodée en ISO-8859-15 ?
Comment t'en assures-tu ?
Et quand tu dis que les œ sont inchangés, comment fais-tu pour le vérifier ?
J'ai besoin des trois réponses aux trois questions pour pouvoir avancer.
J'ai fait l'essai chez moi et bien sûr ça a l'air de marcher.
Ta donnée $_POST["Ville"] est-elle réellement encodée en ISO-8859-15 ?
Comment t'en assures-tu ?
Et quand tu dis que les œ sont inchangés, comment fais-tu pour le vérifier ?
J'ai besoin des trois réponses aux trois questions pour pouvoir avancer.
Salut !
Le charset de la page est UTF-8 mais le résultat est le même avec le charset ISO-8859-15.
Pour vérifier cela die($Ville); et je vérifie le code source de la page. Les é deviennent é et les oe collés est un S bizarre ou restent inchangés selon les tests que j'ai fait.
Merci
Le charset de la page est UTF-8 mais le résultat est le même avec le charset ISO-8859-15.
Pour vérifier cela die($Ville); et je vérifie le code source de la page. Les é deviennent é et les oe collés est un S bizarre ou restent inchangés selon les tests que j'ai fait.
Merci
Toutefois, je ne suis pas le seul :
Sa fonction marche super bien. Pour l'instant le problème n'est pas résolu mais contourné.
Pour le signe de l'euro, c'est pareil. htmlentities ne le converti pas même avec l'ISO-8859-15.
Merci
Aussi, c'est le fait de passer d'une page à l'autre via un formulaire, les entités encodés œ ou é redeviennent des é ou des oe collés. c'est pour les enregistrer dans la base de données que je les convertis avec htmlentities.
http://www.oscommerce-fr.info/forum/index.php?showtopic=69187
Sa fonction marche super bien. Pour l'instant le problème n'est pas résolu mais contourné.
Pour le signe de l'euro, c'est pareil. htmlentities ne le converti pas même avec l'ISO-8859-15.
Merci
Aussi, c'est le fait de passer d'une page à l'autre via un formulaire, les entités encodés œ ou é redeviennent des é ou des oe collés. c'est pour les enregistrer dans la base de données que je les convertis avec htmlentities.
Utilisateur anonyme
Modifié le 30 mai 2017 à 14:06
Modifié le 30 mai 2017 à 14:06
Bonjour
Je doute fort que le résultat soit le même selon que le charset de la page soit UTF-8 ou ISO-8859-15, car le code correspondant à l'œ est différent dans les deux cas, il n'y a aucune raison que htmlentities donne le même résultat.
Tout ce que tu me décris est très étonnant, htmlentities convertissant parfaitement chez moi aussi bien les œ en œ et les euros en € - à condition toutefois de ne pas mélanger les divers encodages.
Cela vient peut-être de ta version de PHP, avec quelle version travailles-tu ?
Quant au lien que tu donnes vers un autre forum, il s'agit d'un autre problème. Il ne parle absolument pas de la fonction htmlentities. Et le résultat de sa fonction dépend de l'encodage de la page.
Par ailleurs, utiliser htmlentities pour enregistrer dans une base de données me semble une très mauvaise idée. Ça altère les données enregistrées, ce qui rend impossible certaines opérations comme le tri. htmlentities n'est prévue que pour l'affichage dans une page HTML et ne devrait pas être utilisée pour autre chose.
Je te propose d'essayer le petit bout de code suivant et que tu me dises ce qu'il affiche quand tu saisis un œ dans le formulaire et que tu envoies ce formulaire.
Je doute fort que le résultat soit le même selon que le charset de la page soit UTF-8 ou ISO-8859-15, car le code correspondant à l'œ est différent dans les deux cas, il n'y a aucune raison que htmlentities donne le même résultat.
Tout ce que tu me décris est très étonnant, htmlentities convertissant parfaitement chez moi aussi bien les œ en œ et les euros en € - à condition toutefois de ne pas mélanger les divers encodages.
Cela vient peut-être de ta version de PHP, avec quelle version travailles-tu ?
Quant au lien que tu donnes vers un autre forum, il s'agit d'un autre problème. Il ne parle absolument pas de la fonction htmlentities. Et le résultat de sa fonction dépend de l'encodage de la page.
Par ailleurs, utiliser htmlentities pour enregistrer dans une base de données me semble une très mauvaise idée. Ça altère les données enregistrées, ce qui rend impossible certaines opérations comme le tri. htmlentities n'est prévue que pour l'affichage dans une page HTML et ne devrait pas être utilisée pour autre chose.
Je te propose d'essayer le petit bout de code suivant et que tu me dises ce qu'il affiche quand tu saisis un œ dans le formulaire et que tu envoies ce formulaire.
<!DOCTYPE HTML> <html lang="fr"> <head> <meta charset="iso8859-15"> <title>essai</title> </head> <body> <form method="post" action=""> <input type="text" name="Ville" /> <input type="submit" value = "envoyer"> </form> <?php if (isset($_POST['Ville'])) { echo '<br>'; echo htmlspecialchars(htmlentities($_POST["Ville"], ENT_QUOTES,"iso8859-15")); echo '<br>'; for ( $k=0; $k<strlen($_POST["Ville"]);$k++) { echo sprintf("%02X ",ord($_POST["Ville"][$k])); } } ?> </body> </html>
Merci Mon père ! :) En fait, c'est dans la ligne de la méta que ça marchait pas.
Voici ce que j'ai toujours mis :
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=text/html; charset=UTF-8" />
En remplaçant UTF-8 par l'ISO-8859-15 cela donnait des résultats bizarres, parfois même la virgule était encodée.
J'ai mis comme toi :
<META CHARSET="ISO-8859-15" />
Et ça marche du tonnerre. Merci encore.
Voici ce que j'ai toujours mis :
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=text/html; charset=UTF-8" />
En remplaçant UTF-8 par l'ISO-8859-15 cela donnait des résultats bizarres, parfois même la virgule était encodée.
J'ai mis comme toi :
<META CHARSET="ISO-8859-15" />
Et ça marche du tonnerre. Merci encore.
Utilisateur anonyme
30 mai 2017 à 21:52
30 mai 2017 à 21:52
Ça aurait pu marcher…
sauf que dans ta ligne, il y a deux charset ! Avec un seul charset :
ça marche bien.
sauf que dans ta ligne, il y a deux charset ! Avec un seul charset :
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso8859-15" />
ça marche bien.
Oui tu as raison, il y a un tiret. J'ai fait une faute de frappe dans ma page de test, et je l'ai copiée-collée dans mon message : ça marche avec cette faute.
Note que plusieurs orthographes sont officiellement admises (mais pas la mienne) :
https://www.iana.org/assignments/character-sets/character-sets.xhtml
Note que plusieurs orthographes sont officiellement admises (mais pas la mienne) :
https://www.iana.org/assignments/character-sets/character-sets.xhtml