PHP: Caractères ? et losanges

Résolu/Fermé
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 2 juil. 2015 à 02:43
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 7 juil. 2015 à 16:10
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 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
7 juil. 2015 à 16:10
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 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
2 juil. 2015 à 07:35
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 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
2 juil. 2015 à 15:55
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 lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
3 juil. 2015 à 14:50
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 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
6 juil. 2015 à 23:28
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 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339 > txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
7 juil. 2015 à 06:50
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 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
7 juil. 2015 à 15:12
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