Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2685 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MySQL et accents

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MySQL et accents

n°1188309
piedbleu
Posté le 30-08-2005 à 23:44:05  profilanswer
 

Bjr,
Je saisie ds des champs d'une table des données texte.
Les accents ne passent pas - remplacés par des ? - lorsque je mets mes pages en ligne - serveur Freee - ,alors que l'affichage est correct en local - easyphp 1.6.
 
Mes pages contiennent en en -tête:
 echo"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
 
Comment encoder/decoder les caractères accentués?
J'aimerai intervenir à la lecture des données ds la table, donc après la saisie.
 
Merci pour vos pistes !
 

mood
Publicité
Posté le 30-08-2005 à 23:44:05  profilanswer
 

n°1188343
Kyle_Katar​n
Posté le 31-08-2005 à 00:21:35  profilanswer
 

quand tu consulte ta base avec phpMyAdmin par exemple, tu as bien les accents ou pas ?

n°1188352
piedbleu
Posté le 31-08-2005 à 00:41:18  profilanswer
 

Oui oui.
En fait pour avoir un affichage en ligne correct, il faudrait que je remplace, dans ma base, ts les caractères accentués par les &eacu... équivalents.
Mes données texte ds ma base proviennent de copier/collés effectués à partir de fichier .txt que l'on m'a fourni.
 

n°1188392
Fry85
Posté le 31-08-2005 à 09:27:20  profilanswer
 

Sinon, à la sortie, tu peux utiliser la fonctions php htmlentities() qui va te traduire tes accents ds la base en code html à l'affichage.

n°1188560
piedbleu
Posté le 31-08-2005 à 12:06:37  profilanswer
 

Oui mais ça ne fonctionne pas, je ne pige pas trop pourquoi, encodage initial du texte?
 
Version initiale:
echo $txt; // les caractères accentués sont remplacés par des "?".
 
Version corrigée:
$txt = htmlentities($txt);
echo $txt; // meme rmque que ci - dessus !
 
Auriez - vous d'autres pistes? Merci!

n°1188576
tux11kin20​2
Posté le 31-08-2005 à 12:37:01  profilanswer
 

Tu peux pas mettre ton texte dans une variable php et lui appliquer un str_replace ("é","&eacute",$texte) avant de le mettre dans ta bdd?
C'est comme ça que je m'en étais sorti...


Message édité par tux11kin202 le 31-08-2005 à 12:37:17
n°1188951
piedbleu
Posté le 31-08-2005 à 18:20:36  profilanswer
 

Oui, et donc à faire pour chaque type d'accent .... ou autre type de caractère; par ex. "n°" ne passe pas non plus bien sûr ...
Y aurait - il un moyen d'intervenir après l'extraction des données de la table?
Y a t -il un en - tête différent de celui que j'indique ci -dessus à faire figurer?
 
 

n°1188979
piedbleu
Posté le 31-08-2005 à 18:47:20  profilanswer
 

*** PROBLEME RESOLU ***  
... et merci pour vos réponses.
 
Lorsque j'importe mes tables depuis le serveur à l'aide de PhpMyAdmin, le jeu de caractères du fichier est "utf8" par défaut; j'ai donc validé "latin1" et maintenant c'est OK :-) OUF!

n°1486301
Thibs10
Posté le 04-12-2006 à 18:48:07  profilanswer
 

J'ai aussi un problème de ce type avec un serveur mySQL 4.1 (aussi bien sous Linux que sous Windows)
 
1° Je crée une table très simple :
 
CREATE TABLE `keywords` (                          
            `Id_keywords` int(11) NOT NULL auto_increment,  
            `Words` varchar(40) NOT NULL default '',        
            PRIMARY KEY  (`Id_keywords`),                    
            UNIQUE KEY `Words` (`Words`)                    
          ) ENGINE=InnoDB DEFAULT CHARSET=latin1            
 
2° J'insère une donnée avec un accent
 
INSERT INTO keywords (Words) VALUES ('HÔMH');
 
3° Ce premier select est normal
SELECT Id_keywords FROM keywords WHERE Words = 'HÔMH'
 
4° Celui ci me retourne quelque chose alors qu'il ne devrait rien me retourner
SELECT Id_keywords FROM keywords WHERE Words = 'HOMH'
 
Je suppose que c'est un truc avec les collations ... mais j'avoue être un peu bloqué

n°1494264
Masure
Posté le 20-12-2006 à 14:57:46  profilanswer
 

Utilise un collate cs pour "case sensitive" au niveau requête si tu ne veux pas changer la collation par défaut.

mood
Publicité
Posté le 20-12-2006 à 14:57:46  profilanswer
 

n°1494282
FlorentG
Unité de Masse
Posté le 20-12-2006 à 15:03:09  profilanswer
 

Thibs10 a écrit :

INSERT INTO keywords (Words) VALUES ('HÔMH');
 
3° Ce premier select est normal
SELECT Id_keywords FROM keywords WHERE Words = 'HÔMH'
 
4° Celui ci me retourne quelque chose alors qu'il ne devrait rien me retourner
SELECT Id_keywords FROM keywords WHERE Words = 'HOMH'
 
Je suppose que c'est un truc avec les collations ... mais j'avoue être un peu bloqué


Les règles de collation latin1 prennent en compte le français, donc ô = o... Faut une comparaison binaire par exemple pour bien différencier les deux


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MySQL et accents

 

Sujets relatifs
Problème de perf php/mysqlInsertion date dans MySQL
Mysql, jdbc et pb d'accents a s'en tirer les cheveuxMysql, jdbc et pb d'accents a s'en tirer les cheveux
Accents et MySQL[php-mySQL] recherche dans une base mySQL problème d'accents
Probleme accents dans base de donnees mysql...Problème avec les accents en mysql
Faire un SELECT MySQL sur une chaîne contenant des accentsProblème accents : conversion BDD DBASE en MYSQL
Plus de sujets relatifs à : MySQL et accents


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR