Pourquoi le serveur Apache de XAMPP ne gère pas les accents (comme la plupart des serveurs ... pour ne pas dire tous, pour reprendre tes mots rincevent01 )
Merci pour ta réponce rincevent01, au passage
- Edité par ehlanadiamant 21 décembre 2014 à 11:00:57
Déjà pour obtenir � sur une page que tu déclares comme étant en ISO, c'est que cette dernière est ignorée/bypassée (par l'entête HTTP Content-Type par exemple) pour de l'UTF-8.
En ce qui concerne le SGBD, quel est-il ? As-tu fait l'équivalent du SET NAMES (valeur latin1 si tu veux du Windows-1252 en sortie, utf8 pour de l'UTF-8).
Reprend les quelques premiers points de cette entrée de la FAQ, pensée expressément pour des cas comme le tien. On y trouve ce que julp te demande de faire au point 4.
Mouais, le problème c'est que PHP fait éventuellement déjà (PHP passant avant Apache) l'équivalent via default_charset.
A ce compte là, si on veut être portable (pas bien de compter sur des valeurs par défaut), rien de tel qu'un bon vieux header('Content-type: text/html; charset=utf-8'); (en l'explicitant, ni Apache ni PHP ne repasse derrière pour modifier cet entête).
Bref, là (en "déclarant" ta page comme étant encodée en UTF-8), si un accent ou autre d'une chaîne statique s'affiche par � c'est que ton fichier n'est pas enregistré en UTF-8.
Par contre, ce qui provient de la base de données, c'est une question un peu à part, à laquelle je t'ai déjà répondu (et Ymox aussi).
<?php
SESSION_START();
require ("connect.inc"); // connection base
require ("class.php"); // Securite variable
require ("date_conviviale.php"); // gere le format de la date
header('Content-type: text/html; charset=utf-8');
(ce sont les premières lignes de mon code) et pas mieux...
J'en conclus que c'est l'enregistrement qui se fait mal...
As-tu regardé les points de la FAQ ? Tu travailles avec XAMPP, donc tu es en local, tu n'as normalement pas besoin de spécifier le jeu de caractères avec header() si tu spécifies proprement le jeu de caractères de toutes tes pages.
ehlanadiamant a écrit:
En cherchant sur le net, cela viendrait de cette ligne :
Sauf que ça me parait un chouïa harassant de devoir modifier le code de chaque page avant transfert sur serveur !!!
Tu le mets sur toutes les pages de ton site en local, et quand tu enverras au serveur, ce sera OK. Ce n'est pas quelque chose que l'on ne doit mettre que quand on publie un site en ligne
Edit
Premier lien de ma signature SVP
Quoi que maintenant, on arrive à se dire qu'il y a eu des réponses entre-temps en chronométrant le temps de traitement du message, mais c'est pas le but.
Edit <small>2</small>
Si jamais, pour signaler un sujet résolu, il y a un bouton au-dessus à droite du premier message
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli