IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage caractères en UTF-8 depuis MySQL [Wamp 3.3.7 64bit]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut Affichage caractères en UTF-8 depuis MySQL [Wamp 3.3.7 64bit]
    Bonsoir à tous,

    Depuis que j'ai réinstallé mon PC de W11 Home vers W11 Pro et donc installé Wamp 3.3.7, j'ai le problème d'affichage des caractères UTF-8 issus de ma BDD : il me semble que j'étais en 3.2.x quand cela fonctionnait correctement.
    Sur mon hébergement il n'y a pas de soucis de ce type.

    Pour restaurer mes sites, j'ai téléchargé les pages depuis mon hébergement et restauré un DUMP de ma BDD (un cron sur l'hergement le fait chaque jour).

    J'ai essayé en modifiant les versions :
    - PHP 7.4 jusque PHP 8.4 (pour l'instant 100% opérationnel en PHP 7.4, mais je dois upgrader en 8.x)
    - Mysql 5 jusque Mysql 9

    J'ai fais des recherches sur le web et rien ne m'a permis de résoudre ce problème : 'Véronique' donne 'Véronique'

    côté HTML, j'ai bien le charset en UTF-8 (j'ai essayé plusieurs paramètres) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<!doctype html>
    	<html lang="fr">
     
    	<head>
    		<!-- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8 Unicode" /> --> ... avant, mais ne fonctionne pas non plus
    		<meta charset="utf-8">
    La BDD est en 'utf8mb4_unicode_ci'

    Il y a-t-il une configuration à modifier dans les fichiers du serveur : PHP - Apache - MySQL ?

    D'avance merci pour votre aide.

    DDA

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par défaut
    comment définissez vous l'encodage au moment de la connexion à la base de données ?

    il y a plusieurs façons de le faire comme expliqué là :
    https://www.php.net/manual/fr/mysqli...ts.charset.php

  3. #3
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Merci pour ta réponse.

    J'ai regardé et testé une connexion de votre lien : rien ne change.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$conn = new mysqli($servername, $username, $password, $dbname);
    	$conn->query("SET CHARACTER SET utf8mb4");
    J'ai donc testé le code pour déterminer le charset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
     
    	echo 'Jeu de caractère initial : ' . $mysqli->character_set_name() . "\n";
     
    	if (!$mysqli->set_charset('utf8mb4')) {
    		printf("Erreur lors du chargement du jeu de caractères utf8mb4 : %s\n", $mysqli->error);
    		exit;
    	}
     
    	echo 'Votre jeu de caractère actuel est : ' . $mysqli->character_set_name() . "\n";
     
           La réponse : Jeu de caractère initial : utf8mb4 Votre jeu de caractère actuel est : utf8mb4
    Je connectais comme ceci : $conn = mysqli_connect($servername, $username, $password, $dbname);
    Le résultat reste : Jeu de caractère initial : utf8mb4 Votre jeu de caractère actuel est : utf8mb4

    Je ne sais pas trop quoi en penser

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par défaut
    quand vous créez un nouvel enregistrement à partir des vos pages php, est ce que un mot avec accent s'affiche bien ?

  5. #5
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Citation Envoyé par mathieu Voir le message
    quand vous créez un nouvel enregistrement à partir des vos pages php, est ce que un mot avec accent s'affiche bien ?
    J'ai modifié 'Véronique' et sauvé, dans la DB, le prénom est maintenant avec accent et non UTF-8 comme avant et s'affiche avec accent du coup.

    Sur l'hébergement cela fonctionne en UTF-8, en local, le problème est apparu avec la nouvelle installation de Wamp, ce serait bien que les 2 soient identiques

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par défaut
    Citation Envoyé par ddaweb Voir le message
    J'ai modifié 'Véronique' et sauvé, dans la DB, le prénom est maintenant avec accent et non UTF-8 comme avant et s'affiche avec accent du coup.
    si c'est ça, je pense que votre application fonctionne bien.

    donc le souci vient des anciens textes que vous avez importés. est ce que vous avez fait l'importation avec phpmyadmin ? je crois qu'il y a un menu déroulant pour choisir l'encodage du fichier lors de l'importation.

Discussions similaires

  1. [MySQL] Problème affichage UTF-8 avec Mysql
    Par flashnet dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/04/2010, 21h08
  2. Affichage de donnees depuis mysql en php html
    Par gator dans le forum Langage
    Réponses: 3
    Dernier message: 03/02/2010, 14h12
  3. [MySQL] affichage de mes articles depuis MySQL
    Par anakyl dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/11/2008, 08h39
  4. [MySQL] Affichage de caracteres etrangers depuis MySQL
    Par nabab dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/07/2007, 00h07
  5. affichage d'une date depuis mysql
    Par kitty2006 dans le forum Requêtes
    Réponses: 7
    Dernier message: 22/08/2006, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo