Problème encodage Arabe UTF-8 UNICODE

Fermé
smed_79 Messages postés 1291 Date d'inscription dimanche 21 septembre 2008 Statut Contributeur Dernière intervention 17 mars 2017 - 14 janv. 2012 à 03:39
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 16 janv. 2012 à 10:11
Bonjour,

Pour récupérer le titre "title" d'un site distant en php j'utilise le code :

<?php 
$site = 'http://'.$url;
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile($site);
libxml_clear_errors();
$title = $doc->getElementsByTagName('title')->item(0);
?>

<?php echo $title->nodeValue; ?>

Pas de probleème avec les caractères latins (abc...xyz) contrairement à la langue arabe qui n'ai pas afficher corectemment :

voir cette image : http://uppix.net/a/a/2/5cdfe1714a9e546d0ce5c8aa86404.jpg

Merci pour votre aide.


A voir également:

1 réponse

bibi_6919 Messages postés 127 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 10 avril 2013 18
16 janv. 2012 à 00:52
Il faut que tu mette une balise méta dans le head avec le charset dedans et met un UTF-8 ou sinon regarde sur le net.
0
smed_79 Messages postés 1291 Date d'inscription dimanche 21 septembre 2008 Statut Contributeur Dernière intervention 17 mars 2017 843
Modifié par smed_79 le 16/01/2012 à 08:52
Merci pour votre répance mais la balise utf-8 et déjà la ! qsq tu veux que je regard sur le net ?!!!!
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
16 janv. 2012 à 10:11
Bonjour,

1) QUESTION: est-ce que le problème persiste avec une page en russe? Essayer par exemple de charger www.cartoon.ru et me dire si l'encodage est bien récupéré ou non...

2) une proposition de solution, dans le code, je vois ceci:

$doc->loadHTMLFile($site);


Mon idée:

$page = file_get_contents($site);
$page = utf8_encode($page);


et plus loin:

$doc->loadHTML($page);


Je ne garantis pas que ça marche. Il faut en effet que la page d'origine (celle qu'on essaye de charger) soit BIEN ENCODEE en UTF8.

Voir ici comment détecter le bon encodage d'une page web:

http://html5.immo-scope.com/index.php?page=general/applisFullUtf8

vers la fin il est expliqué (avec Firefox) comment tester l'encodage de la page du site que l'on veut charger.

L'autre solution est de regarder le code source de la page que l'on veut charger et vérifier si la balise META est bien présente.

A noter que cette balise n'est pas forcément nécessaire si la page du site que l'on veut charger envoie un header d'encodage comme ceci:

header('Content-type: text/html; charset=UTF-8');


A+
0