Caractères accentués sur MySQL

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 1006
Inscription: 4 Juin 2005

Caractères accentués sur MySQL

Message le Lun Juin 25, 2007 17:20

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: Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />


Connaissez vous une solution à ce problème ?

Merci

Adam


Joe Le Mort
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 260
Inscription: 8 Aoû 2006

Message le Lun Juin 25, 2007 17:27

il faut utiliser tes tables au charset utf-8 ainsi que ton meta

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 1006
Inscription: 4 Juin 2005

Message le Lun Juin 25, 2007 17:46

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


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18832
Inscription: 8 Aoû 2004

Message le Lun Juin 25, 2007 17:48

Joe Le Mort a écrit: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.

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 1006
Inscription: 4 Juin 2005

Message le Lun Juin 25, 2007 19:18

Personne ne connait une fonction ou une astuce pour faire ce que j'ai dis plus haut ?

Merci


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Lun Juin 25, 2007 19:43

amazigh25 a écrit: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.

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 1006
Inscription: 4 Juin 2005

Message le Lun Juin 25, 2007 19:57

biscuit a écrit:
amazigh25 a écrit: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

amazigh25
WRInaute passionné
WRInaute passionné
 
Messages: 1006
Inscription: 4 Juin 2005

Message le Lun Juin 25, 2007 20:44

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

un problème avec :
Code: Tout sélectionner
      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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités