Problème d'affichage de base encodée en utf-8
19 messages
• Page 1 sur 2 • 1, 2
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Problème d'affichage de base encodée en utf-8
Bonjour,
Je suis entrain de créer la version Russe d'un site et j'ai un problème d'affichage de caractères.
J'ai modifié toute la base de donnée en utf-8, les tables, les champs, tout.
Mes pages php sont encodées en utf-8.
Le problème est lorsque j'entre directement du texte Russe Cyrillic (exemple "Квартира") via PHPMyAdmin, PHPMyAdmin m'affiche bien ce texte en retour mais sur mon site je vois des ???? à la place.
Et inversement, si via l'interface backoffice de mon site, j'entre du texte en Russe alors PHPMyAdmin affiche par exemple des "é" à la place des "é" mais sur mon site alors je vois bien le texte.
Exemple sur cette page, voyez sur la petite fiche blanche les ???? il correspond à du texte que j'ai entré à la main dans PHPMyAdmin, tout le reste s'affiche bien car entré via les pages du backoffice.
Voyez)vous où est le problème ?
Merci d'avance.
Je suis entrain de créer la version Russe d'un site et j'ai un problème d'affichage de caractères.
J'ai modifié toute la base de donnée en utf-8, les tables, les champs, tout.
Mes pages php sont encodées en utf-8.
Le problème est lorsque j'entre directement du texte Russe Cyrillic (exemple "Квартира") via PHPMyAdmin, PHPMyAdmin m'affiche bien ce texte en retour mais sur mon site je vois des ???? à la place.
Et inversement, si via l'interface backoffice de mon site, j'entre du texte en Russe alors PHPMyAdmin affiche par exemple des "é" à la place des "é" mais sur mon site alors je vois bien le texte.
Exemple sur cette page, voyez sur la petite fiche blanche les ???? il correspond à du texte que j'ai entré à la main dans PHPMyAdmin, tout le reste s'affiche bien car entré via les pages du backoffice.
Voyez)vous où est le problème ?
Merci d'avance.
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Problème d'affichage de base encodée en utf-8
Lorsque tu te connectes au serveur SQL, il faut lui préciser que les données que tu vas insérer sont en UTF-8.
La requête suivante permet de le faire (pour MySQL):
SET names 'utf8';
Cette requête est à faire avant toute autre.
Pour PHPMyAdmin, tu dois pouvoir, si ce n'est déjà fait, configurer la connexion à l'aide d'un menu quelque part.
J'ai réalisé un article sur mon blog pour configurer un projet entier dans un jeu de caractères. Mais il est en cours de finalisation, donc inutile que je donne de lien
La requête suivante permet de le faire (pour MySQL):
SET names 'utf8';
Cette requête est à faire avant toute autre.
Pour PHPMyAdmin, tu dois pouvoir, si ce n'est déjà fait, configurer la connexion à l'aide d'un menu quelque part.
J'ai réalisé un article sur mon blog pour configurer un projet entier dans un jeu de caractères. Mais il est en cours de finalisation, donc inutile que je donne de lien
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Re: Problème d'affichage de base encodée en utf-8
Merci mais je ne vois pas où insérer ce paramètre SET names 'utf8';
Sinon voici les paramèrtres de mon serveur SQL (un mélange de tout...)
, c'est un mutualisé chez Sivit donc je ne peux pas changer les valeurs:
Sinon voici les paramèrtres de mon serveur SQL (un mélange de tout...)
- Code: Tout sélectionner
Variable Valeur pour la session / Valeur globale
auto increment increment 1
auto increment offset 1
automatic sp privileges ON
back log 50
basedir /usr/
binlog cache size 32 768
bulk insert buffer size 8 388 608
character set client utf8
(Valeur globale) latin1
character set connection utf8
(Valeur globale) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Valeur globale) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_unicode_ci
(Valeur globale) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Problème d'affichage de base encodée en utf-8
Comment as-tu eu ce retour ?
Sinon, la requêtes "SET names 'utf8';" est à faire dans ton code PHP.
En gros, à l'ancienne :
mysql_query("SET names 'utf8';");
À adapter selon ton code (framework, PDO, etc.).
Sinon, dans ton retour, tu sembles bien en UTF-8 sur ta connexion dans phpMyAdmin.
Sinon, la requêtes "SET names 'utf8';" est à faire dans ton code PHP.
En gros, à l'ancienne :
mysql_query("SET names 'utf8';");
À adapter selon ton code (framework, PDO, etc.).
Sinon, dans ton retour, tu sembles bien en UTF-8 sur ta connexion dans phpMyAdmin.
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Re: Problème d'affichage de base encodée en utf-8
Ok j'ai ajouté cette ligne après le mysqlconnect et ça marche .... mais ça déconne pour les caractères qui s'affichaient bien avant.
Les pages affichent maintenant de la même manière que via PHPMyAdmin, c'est mieux dirait-on mais je fais quoi maintenant ?
je me retape tout dans la base pour changer les textes proprement ?
Concrètement, tout ce qui a été entré en russe (à l'époque où la base était en latin1), il n'apparait plus que des "ÐšÐ°ÐºÐ°Ñ Ñ€Ð¾ÑкÐ", voir la page.
Les pages affichent maintenant de la même manière que via PHPMyAdmin, c'est mieux dirait-on mais je fais quoi maintenant ?
je me retape tout dans la base pour changer les textes proprement ?
Concrètement, tout ce qui a été entré en russe (à l'époque où la base était en latin1), il n'apparait plus que des "ÐšÐ°ÐºÐ°Ñ Ñ€Ð¾ÑкÐ", voir la page.
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Re: Problème d'affichage de base encodée en utf-8
C'est le bordel maintenant puisque avec cette nouvelle ligne, mes pages en français affichent des "é" à la place des "é" ... etc
Je vais devoir la supprimer pour l'instant.
Mais comment puis convertir cette base ?
Pour comprendre la situation, actuellement via PHPMyAdmin je vois en français les accents comme des é, puis certaines entrées en Russe je vois parfois des "Вилла" et parfois des "Это", c'est la panique
Je vais devoir la supprimer pour l'instant.
Mais comment puis convertir cette base ?
Pour comprendre la situation, actuellement via PHPMyAdmin je vois en français les accents comme des é, puis certaines entrées en Russe je vois parfois des "Вилла" et parfois des "Это", c'est la panique
- ap34df
- WRInaute occasionnel

- Messages: 441
- Inscription: 7 Sep 2010
Re: Problème d'affichage de base encodée en utf-8
Si tes tables sont en utf8 et que tu les a bien rempli via des requetes e utf8, lors de leur affichage, il faut les appeler en utf 8 via mysqli_set_charset ($connexion, 'UTF8') juste après la connexion à la bdd et avant l'exécution des requêtes.
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Problème d'affichage de base encodée en utf-8
C'est parce que lorsque tu as changé le jeu de caractères de la base, tu n'as pas converti les chaînes présentes vers le nouveau jeu de caractères.
Regarde sur http://dev.mysql.com/doc/refman/5.0/fr/alter-table.html.
Fait une recherche sur "Depuis MySQL 4.1.2" tu tomberas sur la partie qui doit t'intéresser (vive les ancres :/).
Regarde sur http://dev.mysql.com/doc/refman/5.0/fr/alter-table.html.
Fait une recherche sur "Depuis MySQL 4.1.2" tu tomberas sur la partie qui doit t'intéresser (vive les ancres :/).
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Problème d'affichage de base encodée en utf-8
Pour convertir une base de latin1 vers UTF8, j'utilise:
- Code: Tout sélectionner
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Problème d'affichage de base encodée en utf-8
Penses tout de même à faire des sauvegardes, on ne sait jamais.
@spout : j'ai lu que cette commande convertissait à partir du jeu de caractères par défaut du serveur. Si le jeu par défaut n'est pas le bon, ça risque pas de foirer ?
@spout : j'ai lu que cette commande convertissait à partir du jeu de caractères par défaut du serveur. Si le jeu par défaut n'est pas le bon, ça risque pas de foirer ?
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Re: Problème d'affichage de base encodée en utf-8
Je viens de le faire avec PHPMySQL dans l'onglet SQL pour la table qui pose problème, il me dit que la commande a bien été effectuée mais ça m'affiche toujours des "é".spout a écrit:Pour convertir une base de latin1 vers UTF8, j'utilise:
- Code: Tout sélectionner
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
Je me demande si mon problème n'est pas inversé ... je vais faire cette même commande mais vers ISO pour voir
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Re: Problème d'affichage de base encodée en utf-8
Quand je fais la commande suivante:
J'ai encore plus de caractères spéciaux:
L'équivalent du "é" est passé de
C'est le merdier.
- Code: Tout sélectionner
iconv -f iso-8859-1 -t utf8 ma_base.sql > ma_base_utf.sql
J'ai encore plus de caractères spéciaux:
L'équivalent du "é" est passé de
- Code: Tout sélectionner
é
- Code: Tout sélectionner
é
C'est le merdier.
-

UsagiYojimbo - WRInaute accro

- Messages: 8578
- Inscription: 23 Nov 2005
Re: Problème d'affichage de base encodée en utf-8
Mon conseil : ne te base pas sur PhpMyAdmin pour ce qui est de vérifier la qualité d'encodage. Mieux vaut utiliser un frontend mysql comme SQLYog ou Heidisql.
-

fredm - WRInaute impliqué

- Messages: 549
- Inscription: 2 Nov 2004
Re: Problème d'affichage de base encodée en utf-8
J'utilise Sequel Pro et ça m'affiche la même chose.UsagiYojimbo a écrit:Mon conseil : ne te base pas sur PhpMyAdmin pour ce qui est de vérifier la qualité d'encodage. Mieux vaut utiliser un frontend mysql comme SQLYog ou Heidisql.
Je regarde également avec un éditeur de texte et je vois la même chose.
Je pense que ce qui s'est passé est que j'avais déjà fais une conversion de la base de iso en utf mais certainement mal faite. Ensuite j'ai changé tous les paramètres de sql de iso en utf.
J'ai l'impression là que mon problème est du genre des caractères du style iso écrits en utf sur le l'utf, un truc comme çà, sinon j'y comprends rien.
19 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- UTF 8 et base de données
- Problème UTF-8
- [Netbeans] Problème utf-8
- UTF 8 Probleme d'encoding?
- Problème encoding UTF-8 [Résolu]
- Base de données : affichage en deux colonnes
- probleme site PHP multilingue en UTF-8
- Problème encodage iso et utf-8 Joomla 1.0.15
- formulaire de contact en UTF-8 - problème caractères russe
- Problème encodage de mon Blog utf-8 et iso-latin
- Suggestions Google Suggest
Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
