IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

gérer différents encodages [Encodage]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut gérer différents encodages
    salut,

    j'ai un probleme sur lequel je bloque.

    j'ai une page qui doit appeler différents documents (html/xhtml/xml), chacun de ces documents a son propre encodage (windows-1252/ISO-8859-1/...).
    évidemment, j'ai des problemes avec les cars spéciaux ... ma page est en UTF-8 et je pensais que décoder et encoder les docs en UTF-8 serait suffisant, voici ou j'en suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      $data = @file_get_contents($_GET['file']);
      if ($data !== false) {
        $charset = 'utf-8';
        if( @preg_match("#<meta.+?content-type.+?charset\s*=\s*([a-z0-9-]+)#isu", $data, $tb) ){
          $charset = strtolower($tb[1]);
        }
        header('Content-type: text/html; charset=utf-8');
     
        if( $charset !== 'utf-8' ){
          $data = iconv($charset, 'utf-8', $data);
        }
        print($data);
    ........
    en 1er je recup le charset du doc source, et avec iconv je le traduit en utf-8.
    mais meme comme ca j'ai encore des problemes avec certains docs ...

    quelqu'un sait pourquoi ?
    merci

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    je cracherais pas sur une piste ou un début d'idée
    j'ai remarqué qu'avec certains docs virer le header permettait de régler le probleme mais par contre des problemes apparaissent avec d'autres docs
    je nage ..

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 359
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 359
    Billets dans le blog
    17
    Par défaut
    en 1er je recup le charset du doc source
    Tu te bases sur la <meta> mais la page peut ne pas s'y conformer.

    Essaie de voir si mb_detect_encoding( ) arrive à détecter le bon jeu de caractères de tes pages.

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Quest-ce que tu appelle des problèmes ? Petits ou gros problèmes ? Et sur quels type de fichiers ?
    Suivant les cas as-tu essayé les options du paramètre out_charset de iconv ?

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut les gars, désolé pour le retard dans la réponse mais mon XP est en fin de vie, je galère pour faire fonctionner mon serveur apache (et quand je le coupe il coupe XP )

    Séb : mes 1ers tests utilisaient les mb_...., mais dans tous les cas mb_detect_encoding me renvoit UTF-8 et mb_check_encoding renvoit true

    ABCIWEB : c'est surtout les caractères accentués qui posent problemes, sur fichier html ...
    ben oui, j'ai mis mon bout de code ou je force l'encodage des données en utf-8 avec iconv

    ---------------
    c'est réglé, j'avais des réglages completement bidon pour mbstring dans le php.ini, donc mb_xxx ne pouvait pas bien faire son travail !
    merci

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function file_get_contents_utf8($url) {
         $data = file_get_contents($url);
          return mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, 'UTF-8, ISO-8859-1, WINDOWS-1251, WINDOWS-1252', true));
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MCD] Comment gérer différents types d'articles dans un stock
    Par straitch dans le forum Schéma
    Réponses: 3
    Dernier message: 14/10/2009, 12h43
  2. [SAX] Gérer l'encodage de l'entrée
    Par drKzs dans le forum XML
    Réponses: 2
    Dernier message: 24/03/2009, 10h53
  3. gérer l'encodage dans les frames
    Par sliderman dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/01/2008, 12h10
  4. Gérer l'encodage d'un fichier texte
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 15/05/2007, 11h24
  5. Réponses: 2
    Dernier message: 30/06/2005, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo