Rechercher : dans
Par :

[PHP/MySQL] Encodage Caractères

Dernière réponse le 29 sep 2009 à 18:58:26 ekra, le 15 mai 2006 à 23:36:05 
 Signaler ce message aux modérateurs

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 !

1

Gihef, le 15 mai 2006 à 23:45:51
  • +1

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.
-- > Nous avons su vous aider ? Alors, aidez-nous, dites-le et
-- > • cochez le problème comme résolu. Merci.

Répondre à Gihef

2

ekra, le 16 mai 2006 à 00:07:17
  • +2

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 !

Répondre à ekra

3

Omsi, le 16 mai 2006 à 18:06:56
  • +1

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.

Répondre à Omsi

4

ekra, le 16 mai 2006 à 20:27:40
  • +1

Bonjour,

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

Mais je vais tester.

Répondre à ekra

5

crabs, le 16 mai 2006 à 22:00:18
  • +8

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 ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

6

ekra, le 17 mai 2006 à 00:11:32
  • +3

WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA :))))))

Merci 10000000000000000000000 fois !!!!!!!
Ca faisait un bout de temps que je cherchais !!!

synthaxe contrant le problème :

$titre=htmlentities($_POST['titre'],ENT_QUOTES,'UTF-8');
$contenu=nl2br(htmlentities($_POST['contenu'],ENT_QUOTES,'UT­F-8'));


Tu peux pas savoir comme ça fait plaisir !

Merci encore !

Répondre à ekra

7

 karikikou, le 29 sep 2009 à 18:58:26

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 +

Répondre à karikikou