Les Allergies
Alimentaires
Posez votre question Signaler

[PHP/MySQL] Encodage Caractères [Résolu]

ekra 1889Messages postés 15 avril 2005Date d'inscription - Dernière réponse le 16 mai 2012 à 15:46
Bonjour, c'est encore moi :)

J'ai enfin réussi (ou presque) à écrire un petit script pour poster des News. Le problème : J'ai tout rédigé les pages PHP en UTF-8 et lorsque je stocke les données dans MySQL, il ne semble pas bien configuré.

=>http://ekra.free.fr
(sur la deuxième news ya que des accents ^^)

Merci d'avance !
Lire la suite 

[PHP/MySQL] Encodage Caractères »

25 réponses
Réponse
+24
moins plus
Salut,
Un truc en passant, htmlentities a pour charset par défaut ISO-8859-1,
il faut donc que tu lui précises que tu es en utf8 sur ta chaine provenant
de mysql ou de ton post.
Cf: http://www.php.net/manual/fr/function.htmlentities.php

A+, crabs
karikikou- 29 sept. 2009 à 18:58
salut

j'ai le meme probleme que toi. Peux tu me dire ou tu as mis ton script pour encoder?? tu le place ou?

merci d'avance pour l'aide

A +
fazou - 29 mars 2010 à 11:14
c bien
drikc - 16 mai 2012 à 15:46
Merci beaucoup de cette précieuse aide !

En effet, je réalisais un module d'accessibilité mais quand la voix de Svox te renvoie un petit "proprit" au lieu d'un "propriété" ...
C'est quand même beaucoup plus clair maintenant. ;)
Ajouter un commentaire
Réponse
+15
moins plus
En effet cela fonctionne ! Merci !

Il suffit de placer mysql_query("SET NAMES UTF8");
dans ton script, juste après la connection à la base MySQL :
mysql_connect(...);
mysql_select_db(...);
tscorpio - 20 janv. 2012 à 00:24
Merci :)
Six - 4 avril 2012 à 09:13
Plus de 2 ans après, ton post aide encore des gens comme moi.
+1!
Benjamin - 25 avril 2012 à 13:23
parfait
Ajouter un commentaire
Réponse
+2
moins plus
Bonjour et bravo,

Jette un œil au-dessus, dans les “Discussions similaires trouvées dans le forum par l'agent intelligent”.
Il y a tout ce qu'il faut.
Ajouter un commentaire
Réponse
+2
moins plus
Merci,
J'ai été confronté au même problème...
En fait, une fois récupéré les données grâce à fgetcsv, tu as plusieurs choix:
- ta BD mysql est en interclassement UTF8, alors tu utilises utf8_encode pour les 'insert"
- ta BD mysql est en interclassement latin1 (ou un interclassement qui gère les accents en natif), tu peux faire les 'insert' directement.


J'ai essayé le utf8_encode() et utf8_decode() en vain :s

Sur ma BDD MySQL, l'interclassement est utf8_bin (si c'est pas bien dites le moi SVP)
Je rédige en UTF-8 avec Gedit (sous Ubuntu 5.10)

Voici ma page
---------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Validation Nouvelles</title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       <link rel="stylesheet" media="screen" type="text/css" title="Default" href="css/default.css" />

-----Coupée--------
<?php
	$titre=utf8_decode(htmlentities($_POST['titre']));
	$contenu=utf8_decode(nl2br(htmlentities($_POST['contenu'])));
//j'ai essayé avec utf8_encode() aussi

----Coupé----------
<?php
		include("MySQL/connexion.php"); // connexion Serv Mysql + BDD
		mysql_query("INSERT INTO nouvelles VALUES('','$pseudo','$timestamp','$titre','$contenu')");

----Coupé-------

Désolé, je vois pas trop comment faire, aidez-moi si vous en avez le courage :p

Merci !
Ajouter un commentaire
Réponse
+2
moins plus
Salut,

Ca ne t'aideras sûrement pas, mais pourquoi as-tu mis ta bdd en utf-8 ?

Perso, je la laisse par défaut en latin1_swedish_ci , et je n'ai jamais eu ce problème.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

c'est parceque je rédige mes pages en UTF8, je pensais donc que ça serai logique.

Mais je vais tester.
Ajouter un commentaire
Réponse
+0
moins plus
"Il suffit de placer mysql_query("SET NAMES UTF8"); "

MERCI BEAUCOUP !!!!! Enfin ca marche, ENFIN !!!
the worker - 23 oct. 2010 à 09:44
Bravo ça marche et merci bon boulot
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup également !!!

Je cherchais depuis des heures (sans rigoler) !
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
meeeeeeeeeeeeeeeeeerci après une looooongue recherche :)))))))))))))) je tombe sur ce super ligne de code mysql_query("SET NAMES UTF8");
Ajouter un commentaire
Réponse
+0
moins plus
Salam,

le simple est beau :

<input type="text name="description" values="l'indirecte" />


Codage :

htmlentities($val,ENT_QUOTES,'UTF-8');

Après le codage : l & # 0 3 9 ;indirecte

Décodage :

utf8_decode('l & # 0 3 9 ; indirecte');

Après le décodage :

l'indirecte

Remarque : j'ai ajouté des espaces pour l'affichage sur le forum
Ajouter un commentaire
Ce document intitulé « [PHP/MySQL] Encodage Caractères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?