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.