PHP: Caractères ? et losanges

Résolu
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   -  
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Malgrès l'encodage en utf8 (tables et pages php, je n'arrive pas à obtenir les caractères corrects dans mes tableaux d'affichage et c'est la première fois que j'ai ce genre de Pb.
caractères ? et losanges. Quelqu'un aurait-il une solution ?
Merci beaucoup d'avance pour vos lumières.



Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:

5 réponses

txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Merciiii !
C'est réglé, ENFIN ! Pour ceux que ça pourrait aider:
// On récupère les informations de connexion à la base 
require 'fonctions.php'; 
$cnx = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($cnx) or die ('Impossible de se connecter à la base'); // sélection de la table
// si encodage UTF-8 des données de la base, sinon mettre cette ligne en commentaire
mysql_query("SET NAMES 'utf8'");

Je clos le post.
Merci encore infiniment à tous !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
1
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonjour,

Un peu de lecture:
https://html5.immo-scope.com/article/general_applisFullUtf8

Il faut être full-UTF8 sur toute la chaîne: fichiers sources, données, etc...

A+
0
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Bonjour mpmp93,
"Il faut être full-UTF8 sur toute la chaîne: fichiers sources, données, etc... "
OK ! mais c'est le cas sauf que j'ai fait les modifs des tables après. J'ai affiché la structure, modifié chaque champ un à un pour l'interclassement et j'ai sauvegardé.
J'ai l'habitude d'utiliser le latin_général_ci sans que ça pose ce genre de Pb .
Si je me connecte à la base chez l'hébergeur les textes sont affiché correctement.
La page qui affiche le tableau contient ceci :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Me dites pas que je dois tout recomencer ? C'est trop con !
Merci en tous cas pour ta réponse.
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Ouvre ton fichier avec Notepad++ puis va dans le menu Encodage et vérifie que ton fichier est "Encoder en UTF8 (sans BOM)". Si ce n'est pas le cas, clique sur "Convertir en UTF8 (sans BOM)".

Bonne journée
0
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Bonsoir Pitet,
j'ai déjà fait ce que tu me décris sauf pour le fichier sql. Je vais l'exporter de chez mon hébergeur sur mon bureau pour vérifier puis, éventuellement, je l'importe de nouveau chez mon hébergeur.
C'est bizarre jusque là j'avais jamais eu ce type de Pb.
Merci et @+
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340 > txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour,

Quand vous vous connectez à la base de données:

function connect() {
$connection = mysql_connect($host,$user,$password);
$db_selected = mysql_select_db($base, $connection);
if (!$db_selected) {
echo 'Impossible d\'utiliser la base : ' . mysql_error();
return;
}
$dbh = $db_selected;
// si encodage UTF-8 des données de la base, sinon mettre cette ligne en commentaire
mysql_query("SET NAMES 'utf8'");
}


Il est ital de rajouter cette ligne de code après connexion:

mysql_query("SET NAMES 'utf8'");


A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Bonjour mpmp93,
J'ai un peu de mal a suivre là, je débute donc...
Voici les infos de connexion:
// On récupère les informations de connexion à la base 
require 'fonctions.php'; 
$cnx = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($cnx) or die ('Impossible de se connecter à la base'); // sélection de la table
Je ne vois pas ou mettre cette ligne que tu me propose. Pourrais me corriger cela avec les commentaires si possible que je ne refasse pas la même erreur par la suite.
Merci en tous cas de m'éclairer.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0