Problème encodage Arabe UTF-8 UNICODE

smed_79 Messages postés 1291 Date d'inscription   Statut Contributeur Dernière intervention   -  
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   19
 
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   Statut Contributeur Dernière intervention   844
 
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   Statut Membre Dernière intervention   1 340
 
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