caracteres spéciaux et base de données
Dernière réponse : dans Programmation
Bonsoir,
Le contenu de ma BDD contient des caractères spéciaux. Je n'arrive pas à les afficher. J'ai changé la balise méta de la page, voilà ce que ça me fait :
- si je mets utf-8 : le contenu de la bdd s'affiche nickel mais le reste de la page non
- si je mets iso-8889-15 ou un autre iso : le contenu de la page est nickel mais c'est le contenu de la base qui passe pas
Dans la structure de ma base j'ai défini en latin1-swedish et ma page est au format ANSI. Je comprends vraiment rien à ces encodages... complètement perdu là lol. Merci !
Le contenu de ma BDD contient des caractères spéciaux. Je n'arrive pas à les afficher. J'ai changé la balise méta de la page, voilà ce que ça me fait :
- si je mets utf-8 : le contenu de la bdd s'affiche nickel mais le reste de la page non
- si je mets iso-8889-15 ou un autre iso : le contenu de la page est nickel mais c'est le contenu de la base qui passe pas
Dans la structure de ma base j'ai défini en latin1-swedish et ma page est au format ANSI. Je comprends vraiment rien à ces encodages... complètement perdu là lol. Merci !
Autres pages sur : caracteres speciaux base donnees
Lassé par la pub ? Créez un compte
Déjà il faut que tu choissisent : UTF-8 ou ISO8859-15. A savoir que si tu es sous Windows les fichiers texte sont le plus souvent en ISO et en plus PHP gère mieux l'ISO. (cf strlen("é") qui peut renvoi 2 en UTF-8.
Donc dans ce cas, fichier et bdd en ISO et ensuite il faut vraiment éviter de changer. A savoir que les navigateur ne regarde pas la balise meta si l'en-tête HTTP spécifie un encodage. En configuration par défaut sous Debian/Ubuntu il spécifie. Dans ce cas soit tu change ta conf soit tu utilise la fonction header() de PHP
Donc dans ce cas, fichier et bdd en ISO et ensuite il faut vraiment éviter de changer. A savoir que les navigateur ne regarde pas la balise meta si l'en-tête HTTP spécifie un encodage. En configuration par défaut sous Debian/Ubuntu il spécifie. Dans ce cas soit tu change ta conf soit tu utilise la fonction header() de PHP
Salut,
Merci pour ta réponse.
Voilà ce que j'ai fais :
- fichiers php en ANSI
- base de données en latin1_general_ci
Et c'est toujours pareil, voilà ce que ça me ressort :
"éé" pour des accents
C'est bizarre, quand je remplace latin1-swedish par general-ci ça reste sur swedish...
Je comprends rien de rien là. Soit je suis bête soit y'a un problème lol.
Merci
Merci pour ta réponse.
Voilà ce que j'ai fais :
- fichiers php en ANSI
- base de données en latin1_general_ci
Et c'est toujours pareil, voilà ce que ça me ressort :
"éé" pour des accents
C'est bizarre, quand je remplace latin1-swedish par general-ci ça reste sur swedish...
Je comprends rien de rien là. Soit je suis bête soit y'a un problème lol.
Merci
Maintenant ça me sort des points d'interrogation... Quelle m***e ces histoires de format, d'interclassement, de charset et de je sais pas quoi. Quelqu'un aurrait-il une solution pour afficher des champs d'une BDD contenant des accents svp? Quel type de champ utiliser (apparemment le TEXT a l'air plus que limité en caractères spéciaux, à moins que ce soit moi qui soit limité
) ? Quel format de page ? Quel interclassement ? etc
Encore merci !
PS : je crois que je vais faire mon site en anglais si ça continu
) ? Quel format de page ? Quel interclassement ? etcEncore merci !
PS : je crois que je vais faire mon site en anglais si ça continu
Par contre, je viens de me rendre compte d'un truc. Quand je lance PhpMyAdmin à partir d'oVH, c'est à partir de là que je gère ma base et que mes données sont rentrées, il y a marqué : French(utf-8). (à l'endroit où l'on doit renseigner les champs utilisateur, mot de passe etc.
J'ai mis en iso mais ça ne change rien.
Voilà ce que j'ai dans mysql :
"Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) " mais je peux pas y changer.
Interclassement : "latin1_general_ci"
J'ai mis en iso mais ça ne change rien.
Voilà ce que j'ai dans mysql :
"Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) " mais je peux pas y changer.
Interclassement : "latin1_general_ci"
A priori les caractère spéciaux qui s'affiche sont typique de caractère en UTF-8 mais dont le PC client interprette en ISO.
ISO = 1 octet
UTF = 2 octet
résultat si tu as un caractère en UTF mais que tu spécifie ISO (cf entete HTTP) alors il affiche 2 caractères erronés.
Passe donc ton entete http en UTF-8.
ISO = 1 octet
UTF = 2 octet
résultat si tu as un caractère en UTF mais que tu spécifie ISO (cf entete HTTP) alors il affiche 2 caractères erronés.
Passe donc ton entete http en UTF-8.
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumBug de "Caractères spéciaux" (Word/XP)
- SolutionsRemplir une base de données à partir d'un fichier excel
- ForumTag + Caractères Spéciaux
- SolutionsMise à jour d'une base de données access en C#
- SolutionsAccess ou Freeware pour Base de Données Relationnelles
- SolutionsBouton enregistrer des données dans la base avec php
- ForumUTF-8 Caractères Spéciaux
- Solutions Impossible de me connecter à ma base de données mysql via un logiciel
- ForumCaractères Spéciaux Pseudo Msn Erreur
- Voir plus