ANSI, UTF8, je deviens fou!

Fermé
DesesperayJohn - 28 mai 2011 à 18:37
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 30 mai 2011 à 09:49
Bonjour à tous,

Je n'ai pas l'habitude de poser des questions sur les forums étant donné que d'habitude je trouve toujours des réponses tout seul en cherchant un peu. Aujourd'hui je suis à deux doigts de fracasser mon ordinateur à coup de hache tellement je n'en peu plus.

Je dois traduire l'intégralité d'un site, par défaut l'encodage (Notepad++ me l'indique) était en ANSI, j'ai immédiatement converti toutes les pages en UTF8 et commencé à traduire avant de me rendre compte que mes accents étaient affreux et que des chaines de caractères apparaissaient n'importe où sur ma page (exemple: " Ãf¯Ã'»Ã'¿ ÃfÂfÃ'¯ÃfÂ'Ã'»ÃfÂ'Ã'¿" en plein milieu d'un menu...)

Dans mon header j'ai bien ajouté
"<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />"
Mais cela ne semble rien changer, j'arrive à afficher des accents dans mon menu mais c'est tout...

Je suis désespéré, j'ai tenté de faire un htaccess pour forcer l'utf8, j'ai TOUT tenté et je n'y arrive pas.

Merci d'avance

2 réponses

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
28 mai 2011 à 19:38
Bonjour,
les  truc dans le genre sont au début des fichiers, à la base ils ne sont pas affichés, c'est pour indiqué si l'encodage du fichier est en little endian ou big endian. Supprimez ces caractères l'encodage étant défini dans l'entête de la page y en a pas besoin et à mon avis ce sont eux qui posent le problème pour décoder les caractères qui les suivent !
0
DesesperayJohn
28 mai 2011 à 19:49
Le problème est que je ne les vois pas dans le fichier ces caractères, comment puis-je les supprimer? Et même si je les supprimais, les accents ne s'affichent que dans le menu (c'est à dire une partie d'un fichier parmi une vingtaine)
0
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
28 mai 2011 à 19:53
Utilisez un éditeur hexadécimal pour les voir et les supprimer, cr-hexact http://crteknologies.fr/logiciels/hexact_en.php faites le test sur une copie au cas où
0
DesesperayJohn
28 mai 2011 à 19:57
Merci beaucoup, je vais essayer ça ce soir, et normalement une fois ces caractères supprimés je n'aurais plus de soucis d'accent?
0
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
Modifié par Hxyp le 28/05/2011 à 20:37
Faut voir après avoir testé j'ai seulement fait une déduction mais n'ai jamais eu le problème sous les yeux. Revenez pour dire ce qu'il en est après les avoir supprimé

Edit : je viens de faire un test si ça peut vous aider, en utilisant un fichier test.txt avec des accents en uft-8 et un html qui le charge dans une iframe.
Sous firefox si la meta pour l'encodage n'est pas ajoutée et que les caractères d'encodage de test.txt sont supprimés, il y a le problème avec les accents vu qu'ils sont en utf-8, ils ne sont pas décodés.
- En ajoutant la meta le décodage des accents se fait correctement.
- Sans la meta et avec les caractères d'encodage dans le fichier txt le décodage des accents est se fait correctement.
Donc ils faut au minimum la meta ou les caractères d'encodage qui sont au début du fichier.
Sous opera dans tout les cas ça s'affiche correctement..
Faut voir de quelle manière les fichier en utf-8 sont chargé dans la page, si vous pouvez donner un échantillon ce serait bien
0
<?php if ((require './core/core_includes/config.php') == false) {print'<center>Fichier de configuration non trouvé</center>';}
header('Content-type: text/html; charset=UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<link rel="shortcut icon" href="./core/images/favicon.ico" />
<title><?php echo $title; ?></title>
<style type="text/css">
@import "./core/css/style.css";
</style>

<script type='text/javascript'>


Voilà l'entête de mon header, toutes mes pages sont censées l'appeler. J'ai procédé avec votre méthode (édition hexadécimale) effectivement il y avait des caractères, ils n'apparaissent plus, mais mes accents ne sont pas réparés :(

Edit: j'ai volontairement mis deux fois la déclaration du charset, je me suis dis que ça changerait quelque chose... :(
Edit2: toutes les pages ne l'appellent pas, mais même si je met manuellement le header + charset dans une page cela ne change rien
Edit3: en réalité lorsque je supprime les caractères avec le logiciel hexadécimal mon charset est remis en ANSI, je vais chercher encore un peu voir si y'a pas d'autres caractères qui se mettent ailleurs
Edit4: Mon footer me faisait apparaitre une des chaines étranges, seulement elle n'est pas visible en hexa O.O
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
30 mai 2011 à 09:49
Bonjour,

l'encodageUTF8 est celui que je préconise. Mais il est évident de savoir le maîtriser. Il y a quelques règles simples qui sont très bien expliquées ici:
http://html5.immo-scope.com/index.php?page=general/applisFullUtf8

Pour info: l'encodage UTF8 est celui qui existe nativement sous Linux. C'est celui de GOOGLe et de nombreux autres sites.

En encodage UTF8, plus de problème d'entités du genre é à traduire en
&amp;eacute;
, vous pouvez utiliser différents alphabets (écrire en grec, en arabe, en russe, en japonais, en chinois...).
0