Problème d'accent du XML à la base [Résolu]

LailaMsaadi 19 Messages postés jeudi 19 août 2010Date d'inscription 24 décembre 2010 Dernière intervention - 4 sept. 2010 à 13:41 - Dernière réponse : Etn3000 39 Messages postés mercredi 30 juin 2010Date d'inscription 10 décembre 2010 Dernière intervention
- 7 sept. 2010 à 15:43
Bonjour .. Je sais que mon problème est très fréquent dans le monde du web mais une solution adéquate à mon problème reste introuvable.

Grâce à ce code j'importe un fichier XML à ma base de données :


<?php


$data = array();

try
{
$bdd = new PDO('mysql:host=localhost;dbname=archive', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

function add_person( $first, $middle, $last, $email )
{
global $data, $bdd;
if(!empty($first) and!empty($middle) and !empty($last) and !empty($email))
{ $sth = $bdd->prepare( "INSERT INTO names VALUES( 0, ?, ?, ?, ? )" );
$sth->execute(array( $first, $middle, $last, $email ) );

$data []= array(
'first' => $first,
'middle' => $middle,
'last' => $last,
'email' => $email
);
}}

if ( $_FILES['file']['tmp_name'] )
{
$dom = DOMDocument::load( $_FILES['file']['tmp_name'] );
$rows = $dom->getElementsByTagName( 'Row' );
$first_row = true;
foreach ($rows as $row)
{
if ( !$first_row )
{
$first = "";
$middle = "";
$last = "";
$email = "";

$index = 1;
$cells = $row->getElementsByTagName( 'Cell' );
foreach( $cells as $cell )
{
$ind = $cell->getAttribute( 'Index' );
if ( $ind !null ) $index $ind;

if ( $index 1 ) $first $cell->nodeValue;
if ( $index 2 ) $middle $cell->nodeValue;
if ( $index 3 ) $last $cell->nodeValue;
if ( $index 4 ) $email $cell->nodeValue;

$index += 1;
}
add_person( $first, $middle, $last, $email );
}
$first_row = false;
}
}

une fois dans ma base les accents deviennent des éé . Oui oui cela me rend malade!
Alors ma base est en utf8_general_ci, ma table aussi et les colonnes aussi !!
Je ne vois vraiment pas où est le problème!
Aidez moi svp
et merciii d'avance
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
LailaMsaadi 19 Messages postés jeudi 19 août 2010Date d'inscription 24 décembre 2010 Dernière intervention - 5 sept. 2010 à 02:03
3
Merci
j ai réglé mon problème en ajoutant cette ligne après la connexion à la base
:
$bdd->exec('SET NAMES utf8');

Merci LailaMsaadi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de LailaMsaadi
Meilleure réponse
Etn3000 39 Messages postés mercredi 30 juin 2010Date d'inscription 10 décembre 2010 Dernière intervention - 7 sept. 2010 à 15:43
3
Merci
Ou aussi:

$texte = utf8_decode($texte);

Les accents seront remis normalement dans $texte

Merci Etn3000 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Etn3000

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.