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

Bibliothèques et frameworks PHP Discussion :

[XML] [sax] language input


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut [XML] [sax] language input
    Bonjour,

    Je lis un fichier xml encodé en iso-8859-1, mais je reçois une erreur UTFDataFormat... Ai-je besoin de faire un formattage particulier, je pensais que cet encodage était par défaut supporté ? J'utilise sax, mais je ne sais pas comment spécifier l'encodage d'input (en fait je ne sais pas le détecter car il n'y a pas de header dans le fichier )

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 66
    Par défaut
    Bonjour,

    utf8_decode
    utf8_encode

    Pour detecter l'encodage :

    http://fr3.php.net/mb_detect_encoding

    Un commentaire utilisateur indique egalement :
    hmdker at gmail dot com
    24-Aug-2008 06:58
    Function to detect UTF-8, when mb_detect_encoding is not available it may be useful.

    <?php
    function is_utf8($str) {
    $c=0; $b=0;
    $bits=0;
    $len=strlen($str);
    for($i=0; $i<$len; $i++){
    $c=ord($str[$i]);
    if($c > 128){
    if(($c >= 254)) return false;
    elseif($c >= 252) $bits=6;
    elseif($c >= 248) $bits=5;
    elseif($c >= 240) $bits=4;
    elseif($c >= 224) $bits=3;
    elseif($c >= 192) $bits=2;
    else return false;
    if(($i+$bits) > $len) return false;
    while($bits > 1){
    $i++;
    $b=ord($str[$i]);
    if($b < 128 || $b > 191) return false;
    $bits--;
    }
    }
    }
    return true;
    }
    ?>
    ( nb: la fonction semble un peu lourde, il doit y avoir plus rapide )

    A la creation du parser, tu peux egalement specifier un encodage.
    par defaut :
    In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.
    http://fr3.php.net/manual/en/functio...ser-create.php

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    oups, j'ai du me planter ça ne devait pas être placé dans le forum PHP, je déplace le post, merci pour la réponse

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

Discussions similaires

  1. XML SAX et eVC++ sur PocketPC
    Par gbardy dans le forum MFC
    Réponses: 2
    Dernier message: 06/07/2006, 18h36
  2. [Pocket PC] XML SAX et eVC++ dispos ?
    Par gbardy dans le forum XML
    Réponses: 3
    Dernier message: 06/07/2006, 12h56
  3. [netbeans 5.0] Probleme : org.xml.sax.SAXParseException
    Par romarseille dans le forum NetBeans
    Réponses: 4
    Dernier message: 12/06/2006, 12h35
  4. [XML] [SAX] Parser XML compatible PHP 4 et PHP 5
    Par nako dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/04/2006, 12h14
  5. [Débutant] Lecture xml SAX
    Par Ekros dans le forum APIs
    Réponses: 6
    Dernier message: 21/06/2004, 16h14

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