Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 12h43   #1
Membre à l'essai
 
Inscription : avril 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 60
Points : 22
Points : 22
Par défaut Optimisation UTF8 (Hébergement Pro OVH)

Bonjour,

meilleurs voeux 2011.

Lors d'une connexion PHP/MySQL, les accents et autres caractères spéciaux des données retournées apparaissent en erreur si je ne précise pas
Code :
<?php mysql_set_charset('utf8'); ?>
Cette ligne est-elle obligatoire ?

Mes fichiers sont évidemment créés et encodés en UTF8.
Ils comportent tous la meta charset UTF8.
Ma base MySQL 5 et mes tables sont en UTF8 Unicode.
Sous PHP 4, 5 ou 6-dev le résultat est le même.

Je souhaite utiliser la méthode Apache expliquée ici paragraphe IV-B
mais modifier le .htaccess avec AddDefaultCharset utf8 n'a eu aucun effet.
Donc peut-être qu'OVH bloque cette directive pour Apache

PS: je suis sur un Pro OVH avec PHP dispo en 4, 5 et 6-dev et sur une base MySQL 5.

Merci pour vos réponses.

Neutron
jimmyneutron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 13h42   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est l'encodage de la connexion mysql qui est en jeu : option "default-character-set" de mysql.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2011, 14h33   #3
Membre à l'essai
 
Inscription : avril 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 60
Points : 22
Points : 22
Citation:
Envoyé par sabotage Voir le message
option "default-character-set" de mysql.
Avec phpMyAdmin je n'ai pas d'autres choix que l'interclassement.

La Doc MySQL 10.3.6. Jeux de caractères et collations de connexion
http://dev.mysql.com/doc/refman/5.0/...onnection.html

Rien à ce sujet dans la config PHP 5.2.14

Comme je suis mutualisé. Je ne vois pas comment modifier cette directive, sauf dans un .htaccess. Mais dans ce cas je n'ai pas trouvé d'autres infos que le AddDefaultCharset utf-8 qui n'est pas la solution.
jimmyneutron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 14h40   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
si tu ne peux pas changé le config mysql qui par default est en latin1 (serveur, je parle pas des tables), c'est au applis de demandé de l'utf-8
donc oui tu dois faire tout le temps
Code :
mysql_set_charset('utf8');
après ca dépend comment est construit ton site, si il est bien fait cette information n'est rentré qu'une seul fois
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 15h39   #5
Membre à l'essai
 
Inscription : avril 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 60
Points : 22
Points : 22
Citation:
Envoyé par stealth35 Voir le message
si il est bien fait cette information n'est rentré qu'une seul fois
C'est là où est le problème

Blague à part je voulais simplement comprendre d'où venait le soucis. En fait il s'agit du serveur MySQL 5 - si je comprends bien - qui est installé par défaut en latin, tout comme l'est Apache pour PHP 4 et 5.

Petite question à ce sujet, pour configurer MySQL en mutu, à part les options développées dans phpMyAdmin ... par grand chose à faire ?

Donc impossible de modifier default-character-set ?

Mais effectivement
Citation:
mysql_set_charset('utf8');
n'est pas a dupliquer si je l' "include" avec mon script de connexion ...

Merci
jimmyneutron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 16h23   #6
Membre à l'essai
 
Inscription : avril 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 60
Points : 22
Points : 22
...

en utilisant phpMyAdmin OVH 3.3.8.1

avant avec MySQL 4 on choisissait l'encodage avant de se connecter.
avec MySQL 5 on est d'office en UTF8.

Pourquoi MySQL serait alors en latin ?



Je viens de faire des essais avec SSH pour voir si je pouvais configuré mysql ... résultat pas fameux pour le moment ...
jimmyneutron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 16h52   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par jimmyneutron Voir le message
...

en utilisant phpMyAdmin OVH 3.3.8.1

avant avec MySQL 4 on choisissait l'encodage avant de se connecter.
avec MySQL 5 on est d'office en UTF8.

Pourquoi MySQL serait alors en latin ?



Je viens de faire des essais avec SSH pour voir si je pouvais configuré mysql ... résultat pas fameux pour le moment ...
regarde dans les variables de phpmyadmin tu verras
ou fait :
Code :
SHOW VARIABLES LIKE 'character%'
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 17h51   #8
Membre à l'essai
 
Inscription : avril 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 60
Points : 22
Points : 22
Effectivement

Code :
SHOW VARIABLES LIKE 'character%'
donne

Citation:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
bizzare pourquoi server est en latin alors que tout le reste est en utf8 ?

en mutualisé est-ce possible de changer cette variable ?

j'ai essayé

Code :
SET character_set_server=utf8
mais sans effet ...

Merci pour l'info

Neutron
jimmyneutron est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 08h35   #9
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
Bonjour,

je me permets d'utiliser ce sujet pour vous poser une question.

Je travaille sur un site en local et j'ai un problème d'affichage des caractères spéciaux (é, è, à, ...)

Je crée un menu depuis des informations stockées dans ma base de données et les informations apparaissent avec les problèmes de caractères.
J'ai donc utiliser
Code :
mysql_set_charset('utf8');
et l'affichage est correct.
Par contre, plus loin sur la même page, j'affiche d'autres informations de ma base de données et en ajoutant cette ligne, ce sont ces informations qui affichent des problèmes de caractère alors que sans la ligne l'affichage est correct.

Vous pouvez m'aider ?
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 09h02   #10
Membre régulier
 
Homme Nicolas
Étudiant
Inscription : mai 2010
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2010
Messages : 308
Points : 74
Points : 74
J'ai trouvé en fait, j'avais déjà convertit mes infos de la BDD en utf_8, donc l'affichage était problématique en convertissant une deuxième fois.
feldi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h27.


 
 
 
 
Partenaires

Hébergement Web