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 :

Convertit tous les charset pas égal à UTF 8


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut Convertit tous les charset pas égal à UTF 8
    Bonsoir,

    Je parse des urls pour récupérer des infos (moteur de recherche) et comme j'ai quelques fois des url en ISO ou autres charset, l'affichage du texte n'est pas bon.

    Je souhaite donc transformer tous ce qui n'est pas en UTF-8 en UTF-8... Mais j'ai ce message d'erreur pour celle ligne

    Notice: iconv(): Wrong charset, conversion from `text/html' to `UTF-8//TRANSLIT' is not allowed in

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $html = iconv($charset,"UTF-8//TRANSLIT",$html);
    le bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                    $charset = (($meta_charset)?$meta_charset:$curl_charset);
                    $charset = mb_strtolower($charset);
     
                    if(!$charset) $charset = "utf-8";
     
                    if($charset != "utf-8")
    			{
    			 $html = iconv($charset,"UTF-8//TRANSLIT",$html);
    			}
    		$charsetyule ="$charset";
    D'avance merci pour votre aide
    Yule

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    iconv permet de passer d'un encodage de caractères à un autre. Ces encodages peuvent être: ASCII, UTF-8, CP1252, ISO-8859-1, ISO-8859-x, etc. En revanche, text/html est un type MIME qui décrit le format de données mais qui n'a rien à voir avec l'encodage.

    J'imagine en voyant ton code que tu cherches à extraire l'encodage de la page html via la balise meta. C'est une idée* et ça doit fonctionner dans la plupart des cas (dans la mesure où l'auteur de la page l'a correctement renseignée). Donc si ta variable $meta contient text/html, c'est que le problème se situe au niveau de l'extraction.

    Tu dois donc nous montrer la partie de ton code qui cherche à extraire l'encodage de la balise meta car c'est là que le problème se trouve.

    À noter, UTF-8 étant capable d'encoder n'importe quel caractère unicode, il est inutile de lui accoler l'option //TRANSLIT. (Cette option n'est utile que lorsque l"encodage d'arrivée n'est pas en mesure de représenter l'ensemble des caractères de l'encodage de départ.)

    (*) Comme il ne faut jamais croire une information provenant de l'extérieur (mode parano: ON), l'extraction de l'encodage via la balise meta (si elle existe) peut être complétée par l'analyse du header et mb_detect_encoding.

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 09h33
  2. [Toutes versions] Récupérer tous les contacts (pas que le carnet d'adresses)
    Par bryce426 dans le forum Outlook
    Réponses: 2
    Dernier message: 05/11/2010, 16h22
  3. [MySQL] recuperer tous les id n'appartenant pas à une table
    Par Elianora la blanche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/10/2005, 15h04
  4. TXMLDocument, ne fonctionne pas sur tous les PC
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 22h33
  5. Les Langages ne sont pas tous les mêmes ......
    Par Max Payne dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/08/2003, 13h51

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