Précédent   Forum du club des développeurs et IT Pro > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 17h30   #1
Master-NiKo
Membre confirmé
 
Avatar de Master-NiKo
 
Homme
Webmaster
Inscription : juin 2005
Messages : 131
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2005
Messages : 131
Points : 201
Points : 201
Par défaut Encodage UTF-8 avec mysql, apache..

Bonjour,

je suis entrain d'installer un server Debian squeeze avec apache et mysql.
Lors de l'installation j'ai bien pensé à faire tous les changements pour l'UTF8 (voir ce tuto)

Donc :
- mes fichiers ont la balise méta : <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- mes fichiers sont bien encodés avec UTF-8 sans bom
- AddDefaultCharset UTF-8 pour apache dans /etc/apache2/conf.d/charset
- mes tables mysql sont en utf8_general_ci
- Interclassement au niveau de la base de données entière est en utf8_general_ci
- Pour php j'ai rajouté cela dans le php.ini :
Code :
1
2
3
4
5
6
# Pour activer l'utf-8 par defaut
mbstring.LANGUAGE=UTF-8
mbstring.internal_encoding=UTF-8
mbstring.http_input=UTF-8
mbstring.http_output=UTF-8
mbstring.detect_order=auto
- Et pour mysql, j'ai rajouté :
Citation:
# Activer l'utf-8 par default sur le serveur (dans [mysqld])
default-character-set = utf8
default-collation = utf8_general_ci
# dans [client]
default-character-set = utf8
Donc j'ai tout fait voir plus... mais j'ai toujours un problème , j'explique :
Le problème se situe au niveau de mysql. Dès que je récupère des valeurs dans mes tables (qui sont bien en utf8) et que je les affiches j'ai le droit à des caractères dans ce style " � ".
A partir de là, je comprends bien que mes valeurs récupérer sont en iso.
Alors du coup je décide de mettre : SET NAMES "utf8"; avant ma requête et la plus de souci (ça confirme qu'il ne me renvoyais pas d'UTF8).

1- Est ce que l'on est obligé de mettre SET NAMES "utf8" ?
car il me semblait qu'avec tous les réglages que j'ai fait je devrais l'avoir par defaut.
2 - Est-ce que c'est le contenu de mes champs qui sont en iso ? je comprends pas...

Merci pour votre aide.
Master-NiKo est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 20h18   #2
ericd69
Expert Confirmé
 
Avatar de ericd69
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 1 802
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 1 802
Points : 3 096
Points : 3 096
salut,

tiens moi aussi j'expérimente la grande joie de faire ça...

oui c'est du à la configuration du drivers mysql (mysql, pdo, mysqli) qui selon la version de php reste sur latin1 par défaut, ce qui oblige à faire ça...(ou son équivalent dans pdo)

php et mysql sont anciens dans cette version de debian, ils datent d' il y a plusieurs années...

à savoir que dans cette version de mysql 5.1 tu utilises de l'utf8 limité à 3 octets maximum, l'utfmb4 n'est disponible qu'à partir de la version 5.5

passe à debian 7.0 si tu veux bénéficier de l'utf8 réglable et utilisable par défaut sans "set names"
__________________
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 11/12/2012, 23h07   #3
Master-NiKo
Membre confirmé
 
Avatar de Master-NiKo
 
Homme
Webmaster
Inscription : juin 2005
Messages : 131
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2005
Messages : 131
Points : 201
Points : 201
Ok, merci bien pour cette explication.
Du coup je vais utiliser SET NAMES "utf8" en attendant d'avoir une version stable de debian 7 (j'ai vu que ça va pas tarder).

Je trouve cela quand même étonnant que l'on ne peut pas modifier ce paramètre ? et pourquoi c'est le latin par défaut ?

Enfin bon si tu me dis que c'est normal ça me rassure car là je ne voyais pas de solution.
Master-NiKo est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 05h36   #4
ericd69
Expert Confirmé
 
Avatar de ericd69
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 1 802
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2011
Messages : 1 802
Points : 3 096
Points : 3 096
c'est à cause du choix de l'existence des latinx: un encodade sur 1 à 2 octets maxi au lieu de 1 à 6 pour encoder l'unicode (qui utilise 4 octets de base ou 2 dans sa version limitée) et en plus avant les sites n'étaient quasiment jamais multilingue ou n'en mixait pas dans une même page. et pour finir ça fait que 4 ou 5 ans que tous les navigateur prennent en charge l'utf8 de base sans extension...

donc dans les début du web et jusqu'à ce que l'adsl se démocratise ça avait son intérêt... et l'évolution en info ça prend du temps... tu as bien des gens qui utilisent des technologie qui ont plus de 5 ans (par exemple, y a bien des gars qui installe encore des debian lenny parce que tu trouves facilement les tutoriels et que certains hébergeurs la propose encore...)

mais c'est bien les réglages que tu as fait car tu n'es pas forcé de générer normalement d'entête pour le charset vu que le serveur apache le fait
__________________
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 09h12   #5
Master-NiKo
Membre confirmé
 
Avatar de Master-NiKo
 
Homme
Webmaster
Inscription : juin 2005
Messages : 131
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2005
Messages : 131
Points : 201
Points : 201
Ok merci bien pour toute ses précisions.
Bonne continuation.
Master-NiKo est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h14.


 
 
 
 
Partenaires

Hébergement Web