Caractères accentués sur MySQL

WRInaute impliqué
Bonjour,

Je suis entrain de développer un site en PHP/MySQL qui contient une sorte d'annuaire.
Il y'a donc un formulaire pour proposer un site, que j'ajoute à la base dans la table 'hotels' qui contient plusieurs champs dont 'description' (latin1_swedish_ci ).
Si la description d'un site contient des caractères accentués, sur PHPMyAdmin ils s'affichent bizarrement ô(ô) é ( é) ... , même chose quand je les affiches sur une page même en utilisant

Code:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Connaissez vous une solution à ce problème ?

Merci

Adam
 
WRInaute impliqué
Ce que Joe Le Mort m'a proposé est correct, ça marche !
Mais pour le puriste que je suis, serait t'il possible de transformer é en &eacute; par exemple ... ?


Merci
 
WRInaute accro
Joe Le Mort a dit:
il faut utiliser tes tables au charset utf-8 ainsi que ton meta
ca n'est pas obligé, avec une table en ISO-8859-1, bien faire attention que les saisies soient dans ce format, si les meta et header de la page sont aussi en ISO-8859-1 aucun problème.
 
WRInaute occasionnel
amazigh25 a dit:
Ce que Joe Le Mort m'a proposé est correct, ça marche !
Mais pour le puriste que je suis, serait t'il possible de transformer é en &eacute; par exemple ... ?


Merci

Tu as la commande PHP htmlspecialchars($string) mais à faire lors de l'insertion en bdd.
 
WRInaute impliqué
biscuit a dit:
amazigh25 a dit:
Ce que Joe Le Mort m'a proposé est correct, ça marche !
Mais pour le puriste que je suis, serait t'il possible de transformer é en &eacute; par exemple ... ?


Merci

Tu as la commande PHP htmlspecialchars($string) mais à faire lors de l'insertion en bdd.

Je pense que cette fonction comme htmlentities se limite au caractères comme ' > & < !

Je suis tombé sur un script :
-http://www.greywyvern.com/code/php/utf8_html.php

je suis entrain de l'adapter !

Je vous tiens au courant

Adam
 
WRInaute impliqué
J'ai essayé de personalisé le script, mais je n'ai pas réussi !

un problème avec :
Code:
      while (strlen($texte) > 0) {
        preg_match("/^(.)(.*)$/u", $texte, $match);
        $test = utf8_decode($match[1]);
        if ($test != "?") {
          $char .= htmlentities(htmlentities($test));
        } else if (strlen($match[1]) > 1) {
          $char .= "&amp;#".uniord($match[1]).";";
        } else $char .= htmlentities(htmlentities($match[1]));
        $texte = $match[2];
      }



  • Notice: Undefined offset: 1 in c:\program files\easyphp1-8\www\html.php on line 35

    Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\html.php on line 41

Je ne suis pas trés doué en array, mais je pense que le problème viens de $match[1] et $match[2]

Adam
 
Discussions similaires
Haut