[PHP/Ajax/MySQL] Problème encodage!
Résolu/Fermé
A voir également:
- [PHP/Ajax/MySQL] Problème encodage!
- Encodage ascii - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
4 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
30 mars 2011 à 13:51
30 mars 2011 à 13:51
Salut.
Indiquer l'encodage dans la balise meta ne remplace pas l'encodage réel de la page.
C'est pour que le navigateur sache lequel utilisé.
Par défaut, la plupart des serveurs indiquent au navigateur l'ISO-8859-1.
Si ta page est dans cet encodage, inutile de le préciser.
Si tu veux utiliser l'UTF-8, alors il faut l'indiquer dans la meta ou la config du serveur ET enregistrer le fichier dans cet encodage.
Si tu veux utiliser l'UTF-8 :
- Réenregistre ta page dans cet encodage
- Indique le dans la meta ou la config du serveur (ou .htaccess)
- Utilise l'interclassemenet UTF-8 (utf8_bin ou utf8_general_ci)
Si tout ça est respecter, inutile de réencoder les chaines en PHP.
Indiquer l'encodage dans la balise meta ne remplace pas l'encodage réel de la page.
C'est pour que le navigateur sache lequel utilisé.
Par défaut, la plupart des serveurs indiquent au navigateur l'ISO-8859-1.
Si ta page est dans cet encodage, inutile de le préciser.
Si tu veux utiliser l'UTF-8, alors il faut l'indiquer dans la meta ou la config du serveur ET enregistrer le fichier dans cet encodage.
Si tu veux utiliser l'UTF-8 :
- Réenregistre ta page dans cet encodage
- Indique le dans la meta ou la config du serveur (ou .htaccess)
- Utilise l'interclassemenet UTF-8 (utf8_bin ou utf8_general_ci)
Si tout ça est respecter, inutile de réencoder les chaines en PHP.
Bonjour et merci d'avoir répondu.
Mais il y a toujours un problème ^^
- J'ai réencodé en utf-8 (sous Notepad++, il remplace les caractères par des x80 etc...)
- J'ai indiqué dans le meta que je voulais du utf-8 (<meta http-equiv="content-type" content="text/html, charset=utf-8"/>"
- J'utilise l'interclassement utf8_general_ci (appliqué à la connexion utilisé, à la bdd, à la table et aux champs).
Les caractères spéciaux sont toujours affichés par un losange avec un "?".
Dans la BDD, il m'a remplacé lescaractères par des "�" mais à la sortie (en utilisant les valeurs de la BDD), cela doit être bon puisqu'il me raffiche le "?"
Mais il y a toujours un problème ^^
- J'ai réencodé en utf-8 (sous Notepad++, il remplace les caractères par des x80 etc...)
- J'ai indiqué dans le meta que je voulais du utf-8 (<meta http-equiv="content-type" content="text/html, charset=utf-8"/>"
- J'utilise l'interclassement utf8_general_ci (appliqué à la connexion utilisé, à la bdd, à la table et aux champs).
Les caractères spéciaux sont toujours affichés par un losange avec un "?".
Dans la BDD, il m'a remplacé lescaractères par des "�" mais à la sortie (en utilisant les valeurs de la BDD), cela doit être bon puisqu'il me raffiche le "?"
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
30 mars 2011 à 14:35
30 mars 2011 à 14:35
Le losange noir signifie que le fichier est en UTF-8 mais que le navigateur tente de l'afficher en ISO.
Ici, c'est parce que la meta est incorrecte : c'est un « ; » après « text/html »
Pour la base de données, c'est la même chose qu'avec les pages : changer d'interclassement ne réencode pas les caractères.
Si tes tables sont en UTF-8 mais que les données sont enregistrées grâce à un formulaire en ISO, alors l'encodage en base de données sera l'ISO.
Lorsque tu sélectionneras les données depuis MySQL, il faudra les afficher sur une page en ISO.
Ici, c'est parce que la meta est incorrecte : c'est un « ; » après « text/html »
Pour la base de données, c'est la même chose qu'avec les pages : changer d'interclassement ne réencode pas les caractères.
Si tes tables sont en UTF-8 mais que les données sont enregistrées grâce à un formulaire en ISO, alors l'encodage en base de données sera l'ISO.
Lorsque tu sélectionneras les données depuis MySQL, il faudra les afficher sur une page en ISO.