Création
d'entreprise
Posez votre question Signaler

Problème encodage Arabe UTF-8 UNICODE

smed_79 946Messages postés 21 septembre 2008Date d'inscription 30 mai 2012Dernière intervention - Dernière réponse le 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.
Lire la suite 

Problème encodage Arabe UTF-8 UNICODE »

3 réponses
Réponse
+0
moins plus
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.
smed_79- 16 janv. 2012 à 08:50
Merci pour votre répance mais la balise utf-8 et déjà la ! qsq tu veux que je regard sur le net ?!!!!
mpmp93- 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+
Ajouter un commentaire
Ce document intitulé « Problème encodage Arabe UTF-8 UNICODE » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?