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 :
- Et pour mysql, j'ai rajouté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Donc j'ai tout fait voir plus... mais j'ai toujours un problème , j'explique :# 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
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.
Partager