Bonjour à tous !

je viens vers vous car là je sèche... Je suis en train d'exporter un site local sur OVH. Tout se passait bien, jusqu'à ce que je sois confronté à un soucis d'encodage de la base de données (Pour info, ma base de données est sous Postgresql). OVH a ses serveurs postgresql en UTF-8, j'étais en SQL_ASCII. J'ai donc converti ma base, maintenant toutes les données sont bien en UTF-8, pas de soucis de ce côté là.

Mes pages .html et .php étaient en ISO, je les ai donc toutes converties en UTF-8 SANS DOM via notepad++, bien ajouté la balise
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
.

Tout est donc bien en UTF-8. Mais cependant, Firefox (Chrome et IE aussi) détecte un encodage ISO... Quand je leur dit que la page est en UTF-8, tout s'affiche correctement, puis, dès que je change de page, PAF, ça repasse en ISO...

Voyez plutôt : www.boaflex.fr

Je ne comprends pas pourquoi ça me fait ce coup là, help me please !

PS : Je sais qu'il y a de nombreux sujets traitant les problèmes de conversion d'encodage, mais aucun ne m'a satisfait, ou alors je ne suis pas tombé sur le bon...

Edit : Rectification, les navigateurs détectent l'encodage "Windows-1252".
Modifié par Hornth (16 Nov 2012 - 11:21)
Voici ce que le navigateur reçoit comme entête : http://thi.me/Kxwt

A mon sens, la première piste est celle de l'encodage de tes fichiers. Es-tu bien sûr de les avoir réencodés/convertis en utf-8 ? Smiley smile
La seconde est alors côté serveur... Vois peut-être ce que ça donne en mettant un .htaccess qui redéfinit l'encodage pour les pages html ?
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8

Un encodage forcé au niveau du transfert FTP ?
Pour le reste, je ne vois pas trop...

tm
Oui, les fichiers étaient bien tous codés en UTF-8.

Et le .htaccess contenait bien le code que tu as mis.

Mais au moment de ta réponse, je venais de tomber son mon problème !

Il y avait en fait un header dans le code php qui mettait le charset sur ISO...

Mon prédécesseur avait en fait mis des headers, puis avait ensuite mis la balise meta...

C'est donc résolu ! Merci de ton aide
Morale de l'histoire : Bien vérifier son code php ! Et je saurais à l'avenir que le header est plus fort que la balise meta !

(Au fait, sympa le forum)


Edit : Tiens par contre, je génère des fichiers .csv via le site, mais ils sont donc en UTF-8 et les caractères spéciaux ne passent pas sur Excel...
Je précise que les fichiers sont créés "à la volée" avec
header("Content-Disposition: attachment; filename=$nom_fichier.csv");


Une solution ? J'en ai vu mais qui ne marche pas avec cette façon de générer les fichiers
Modifié par Hornth (16 Nov 2012 - 12:33)
Hornth a écrit :
Et je saurais à l'avenir que le header est plus fort que la balise meta !

Pour être exact, c'est l'en-tête HTTP Content-Type qui prend le pas sur l'information équivalente donnée dans le code HTML (pourquoi vous croyez que ça s'appelle <meta http-equiv[b/]>, hmm?). Et la fonction [i]header() en PHP permet de définir un en-tête HTTP qui sera envoyé par le serveur. La boucle est bouclée. Smiley smile

Pour info dans la capture d'écran de tm™ on pouvait lire dans les en-têtes HTTP de la réponse:
Content-Type: text/html; charset=windows-1252


Hornth a écrit :
Edit : Tiens par contre, je génère des fichiers .csv via le site, mais ils sont donc en UTF-8 et les caractères spéciaux ne passent pas sur Excel...

Un fichier CSV ne contient pas d'information de codage de caractère. Il n'y en a pas dans le code du fichier CSV, et bien sûr quand tu enregistres ce fichier sur le bureau ou ailleurs tu ne conserves pas les en-têtes de la réponse HTTP. Excel va généralement supposer que le fichier est encodé en Windows-1252 (sur Windows) ou en MacRoman (sur Mac).

Je sais pas trop si on peut rajouter une information de charset dans un fichier CSV, ou s'il faut sortir des données dans un charset bien précis (donc, pour tes fichiers CSV, faire des conversions côté serveur). On doit trouver des infos à ce sujet sur le web, j'imagine. Par exemple ici:
http://stackoverflow.com/questions/155097/microsoft-excel-mangles-diacritics-in-csv-files
http://stackoverflow.com/questions/4192186/setting-a-utf-8-in-java-and-csv-file[/b]
Modifié par fvsch (29 Nov 2012 - 15:10)