Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web
Général Conception Web Forum d'entraide sur les choix technologiques. Avant de poster : Cours Dév. Web, FAQs Dév. Web, Sources Dév. Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 08h56   #1
Membre du Club
 
Inscription : juin 2005
Messages : 152
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 152
Points : 52
Points : 52
Par défaut Problèmes avec les caractères accentués

Bonjour,

Voila mon pb. et désolé si je me suis trompé de rubrique...

Notre site internet fonctionnait avec xampp sur notre serveur interne, et jusque la il n'y avait aucun pb. Mon responsable ma demandé de migré notre site web, base de données sql, etc chez un hébergeur mutualisé pour plus de sécurité.

Seulement voila !!! maintenant j'ai des pb. avec l'encodage... Je n'ai plus les caractères accentués ! J'ai fais des essais en remplaçant dans la balise meta le charset (utf-8, etc) mais rien n'y fait... Le seul moyen pour avoir les accents et de sélectionner dans IE8 affichage-->codage-->alphabet occidental(iso) mais il faut le faire à chaque ouverture du navigateur et puis ça ne fonctionne pas avec les pages en php... ou je remplace tous les é par é et autres caractère accentué dans le code php...

voici l'entete de nos pages web:
Code :
1
2
3
4
5
6
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Index</title>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
Je ne sait plus trop quoi faire ???

Merci d'avance pour vos infos.
azorol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 18h06   #2
Membre éprouvé
 
Avatar de Gecko
 
Homme Antoine B
Développeur Web
Inscription : février 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Antoine B
Âge : 27
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 106
Points : 409
Points : 409
Envoyer un message via MSN à Gecko Envoyer un message via Skype™ à Gecko
Salut !

Si tu veux passer ton site intégralement en UTF-8 (ce qui est bien ^^) il faut faire les choses suivantes :

1) Encoder la connexion à la bdd en UTF-8 (une ptite recherche sur google pour ton SGBD et tu sauras comment faire en moins de deux minutes).

2) Encoder toutes les pages de ton site en UTF-8, le mieux est d'ouvrir les fichiers avec notepad++ et tu fais "encodage => convertir en UTF-8 (sans BOM)".

3) La balise qui vas bien dans ton code html.

Si avec ça ton IE prend toujours ton site en ISO je vois pas ce que j'aurais pu oublier :p

Bon courage, passer en UTF-8 c'est galère mais après c'est le pied ^^
Gecko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 20h58   #3
Membre du Club
 
Inscription : juin 2005
Messages : 152
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 152
Points : 52
Points : 52
Ben justement tout est en utf-8, IE me dit que le codage est en utf, mais je doit passer manuellement en iso pour avoir les caractères accentué, mais si je code les pages en iso ça fonctionne pas !!!
azorol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 22h22   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
Tu édites tes pages avec quel éditeur ? Il faut configurer ton éditeur pour qu'il travaille en UTF-8.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 09h35   #5
Membre du Club
 
Inscription : juin 2005
Messages : 152
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 152
Points : 52
Points : 52
J'utilise Dreamweaver mx, mais justement j'étais en iso à l'origine lors du changement j'ai fais une modif global sur toutes les pages du site avec la fonction rechercher et remplacer pour les passer en utf-8, mais je ne suis pas passé par propriété de la page, codage pour chaque fichiers...

J'ai fais unu essai avec un fichier htacces dans la racine du site avec defautcharset en iso et la ça m'affiche bien les accents ! Je comprends pas pourquoi quant mes pages sont en iso ça va pas et si je les mets en utf-8 et que je force en iso ça fonctionne !!!!

surtout que certaine pages qui ont été rajoutées en xhtml, mais en extensions .html, elles sont en utf-8 et affiche corretement les accents...
azorol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h29   #6
Membre éprouvé
 
Avatar de Gecko
 
Homme Antoine B
Développeur Web
Inscription : février 2011
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Antoine B
Âge : 27
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 106
Points : 409
Points : 409
Envoyer un message via MSN à Gecko Envoyer un message via Skype™ à Gecko
Tout simplement parce qu'il faut encoder les pages en UTF-8 et pas que leur contenu
Gecko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 20h13   #7
Membre Expert
 
Inscription : septembre 2010
Messages : 1 239
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 239
Points : 1 561
Points : 1 561
Oui il faut employer et spécifier le même encodage à toutes les étapes pour que cela fonctionne correctement. Ceci devrais pouvoir t'aider:
Citation:
Configurations des entêtes en:

1)HTML:

Il vous suffit d'indiquer le charset dans une balise meta à la suite de la balise head
Code :
1
2
3
4
<head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
    ...
    </head>
Cette ligne doit logiquement être la première suivant la balise <head> puisqu'elle indique au navigateur l'encodage utilisé.
Attention, l'entête envoyée par le serveur sera prioritaire sur cette déclaration html

2) APACHE:
Comme mentionné en préambule, le serveur apache envoie (généralement pour l'instant) des entêtes à la norme ISO-8859-1.
- Si vous avez accès à la configuration du serveur > httpd.conf, ajoutez l'une ou l'autre des lignes

Code :
 AddDefaultCharset UTF-8
#ou
Avec la deuxième solution le serveur se renseigne sur l'entête http et sera donc en cohérence avec le charset indiqué dans la page html.

- Sans accès à la configuration du serveur vous pouvez mettre l'une ou l'autre des lignes ci-dessus dans un fichier .htaccess

- Sinon indiquez au début de vos pages php

Code :
    header('Content-Type: text/html; charset=UTF-8');
Cette dernière solution permet un meilleur portage de vos scripts.



3) PHP
Configuration php.ini

Le module "mbstring" s'occupe de la manipulation des chaînes tandis que le module "iconv" permet de convertir différents types d'encodages.
Les conversions entre ISO et UTF-8 peuvent se réaliser à l'aide des fonctions utf8_encode() et utf8_decode().
Dans la plupart des cas vous n'aurez pas à intervenir sur la configuration du php.ini.

Utilisation des fonctions de traitement des chaines multi octets
Pour reprendre l'exemple initial, mb_strlen() sera utilisée à la place de strlen().
Liste des fonctions adaptées au traitement des chaines UTF-8

PHP travaille pour l'instant en ISO, il faudra donc spécifier l'encodage utilisé pour les fonctions qui le demande ou modifier l'encodage initial.

Code :
1
2
3
4
5
6
  echo mb_internal_encoding(); //affiche  ISO-8859-1
    echo mb_strlen('aé');// affiche 3
    echo mb_strlen('aé',"utf-8");// affiche 2

    mb_internal_encoding("UTF-8");// indique d'utiliser l'encodage UTF-8
    echo mb_strlen('aé');// affiche 2

4) MySql

Pour MySql comme pour toute autre base de donnée il est préférable de créer votre base en spécifiant l'encodage utf8_general_ci.
Cette possibilité est cependant rarement disponible sur les serveurs mutualisés. Pour contourner ce problème et une meilleure portabilité de votre code, vous pouvez indiquer l'encodage à utiliser en envoyant la requête "SET NAMES UTF8" juste après la connexion à votre base.


Code :
1
2
   mysql_select_db($database, $connection);
    mysql_query("SET NAMES 'utf8'");
Pour les versions PHP 5 >= 5.2.3 et MySQL version 5.0.7 ou supérieure, utilisez de préférence mysql_set_charset


Vos tables doivent également être créées en utilisant l'Interclassement utf8_general_ci via phpMyAdmin, ou dans une fenêtre sql :

Code :
1
2
3
4
5
CREATE TABLE IF NOT EXISTS `membres` (
      `pseudo` varchar(100) NOT NULL,
      `pass` varchar(100) character set utf8 collate utf8_bin NOT NULL,
      PRIMARY KEY  (`pseudo`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Dans cet exemple le champ "pass" est formaté avec "collate utf8_bin" pour être sensible à la casse.
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 01h25   #8
Membre du Club
 
Inscription : juin 2005
Messages : 152
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 152
Points : 52
Points : 52
Ok merci je vais y jeter un coup d'oeil dessus et vérifier mes pages.
azorol est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h45.


 
 
 
 
Partenaires

Hébergement Web