Précédent   Forum des professionnels en informatique > PHP > Outils > phpMyAdmin
phpMyAdmin Forum d'entraide sur l'outil phpMyAdmin : installation, utilisation, etc. Avant de poster -> Cours phpMyAdmin
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2010, 09h51   #1
Membre régulier
 
Inscription : octobre 2010
Messages : 252
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 252
Points : 92
Points : 92
Par défaut Problème d'encodage UTF-8 (et un de plus)

Bonjour,

Après avoir parcourut de nombreux topics à ce sujet je n'ai toujours pas rencontré de cas identique au miens:

En générale on dit: "ajoute un $bdd->exec('SET NAMES utf8');" et ca fonctionne...

Pour mon cas je n'ai pas de soucis pour récupérer les accents de ma base de donnée (problème résolu grâce à cette méthode), mais ca ne fonctionne pas lorsque j'insère une donnée qui comporte des accents !

Exemple:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
	 try
	 {
		 $bdd = new PDO('mysql:host=localhost;dbname=ma_table', 'root', '');
		 $bdd->exec('SET NAMES utf8');
	 }
	 catch(Exeption $e)
	 {
		 die('Erreur : '.$e->getmessage());
	 }
 
         $membre0 = htmlspecialchars($_POST['prenom_membre0']);
         $bdd->exec("INSERT INTO membres(prenom) VALUES('".$membre0."')");
?>
Ici phpMyAdmin va m'enregistrer pour "chloé" "chlo?", et si je fais un SELECT, je récupère ce "?" au lieu du "é" dans php...

Mes tables sont en "latin1_swedish_ci"est-ce correcte ? Quand je les mets en "utf8_bin" ou "utf8_general_ci" il me coupe la chaîne à partir du premier accent rencontré.

Pourtant les données sont elles bien réceptionnées quand je met les accents en "insertion manuelle" via phpMyAdmin mais mal insérer par "INSERT INTO" etc...

Désolé de faire un post de plus là dessus, mais ca fait plus de 24h que je cherche une solution pour des problèmes d'accents et c'est vraiment gonflant de perdre autant de temps là dessus...

Merci !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 10h26   #2
Membre éprouvé
 
Avatar de guigo
 
Inscription : juin 2006
Messages : 606
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 606
Points : 479
Points : 479
Salut,
ca ne serait pas l'encodage de ta page de sortit qui serait mauvais ?
(La ou tu fais ton echo $x -->cloé)
guigo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 10h39   #3
Membre régulier
 
Inscription : octobre 2010
Messages : 252
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 252
Points : 92
Points : 92
Bonjour,

Effectivement quand je touche à l'encodage en faisant ce qu'il est censé falloir faire:
1) Sur notepad++: .Encodage => Encoder en utf-8 (sans BOM)
.Encodage => Convertir en utf-8 (sans BOM)

2) Début des fichiers sous la forme suivante:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start();
?>
 
<?php header( 'content-type: text/html; charset=utf-8' ); ?>
 
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>titre</title>
	</head>
...
</html>
Lorsque je fais cette manipulation, alors que tous mes accents apparaissaient juste avant, ils sont tous remplacés par des caractères comme "?" pour le "é".

Exemple:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start();
?>
 
<?php header( 'content-type: text/html; charset=utf-8' ); ?>
 
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>titre</title>
	</head>
	<body>
		<?php echo "prxE9m"; ?>
	</body>
</html>
(XE9 étant généré par la conversion de l'encodage en UTF-8 (sans BOM)) ce echo m'affiche "pr�nom", alors je ne saisit pas, j'oublie/je rate quelque chose ? Car le fichier où je fais mes requêtes SQL est structuré exactement comme ci-dessus.

Cela dit si je pense que ca vient de phpMyAdmin c'est parceque lorsque je regarde dans mes tables je vois que les accents sont remplacés par des caractères spéciaux alors que quand je les insères directement par la commande "insérer" et que je les récupères avec un SELECT, alors là, les accents s'affichent normalement.

Merci pour l'aide !

EDIT:

Problème résolut: Pour ceux qui sont dans le même cas, lorsque vous convertissez tout en utf-8 il faut remplacer les caractère xE9 etc par les accents !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h59.


 
 
 
 
Partenaires

Hébergement Web