Problème de charset avec traduction Google
Bonjour à tous,
J'essaie de faire un script qui traduit un texte grâce à Google Traduction.
Malheureusement, j'ai un petit problème: l'accentuation semble posé problème... Pourtant, je travaille en UTF-8, Google aussi ... J'ai essayé de travailler ma page en iso-8859-15, le problème est plus ou moins similaire une fois qu'on joue avec utf8_encode/decode. J'ai aussi essayé de jouer avec utf8_encode/decode et mb_convert sur la version ut8 de la page. Je me suis dit que le problème venait peut être de l'utilisation du DomDocument, alors j'ai essayé avec file_get_contents mais je n'ai toujours pas réussi à résoudre le problème.
Pour être plus clair, voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>TEST 01</title>
<link rel="stylesheet" type="text/css" title="Design" href="css/design.css" />
</head>
<body><p>
<?php
$from= "fr";
$to = "en";
$source = "url:http://www.tv5.org/TV5Site/info/afp_article.php?idrub=15&xml=newsmlmmd.2f8b5b227cce71fce5efb88778a3bbd7.201.xml [tok] Pâte d'arachide contaminée aux USA: ouverture d'une enquête criminelle [tok] Le ministère américain de la Justice et l'Agence de réglementation de l'alimentation (FDA) ont ouvert une enquête criminelle dans l'affaire de la vaste intoxication alimentaire à la pâte d'arachide contaminée aux salmonelles, a indiqué vendredi un porte-parole de la FDA.";
$new_url = 'http://translate.google.com/translate_t?langpair='.$from.'%7C'.$to.'&text='.urlencode($source).'#';
$doc = new DOmDocument;
if(@$doc->loadHTMLFile($new_url)) {
$h1 = $doc->getElementsByTagName("h1");
$child = $h1->item(0);
while ($child) {
if($child->nodeName=='form') {
$div = $child->getElementsByTagName("div");
for ($i = 0; $i < $div->length; $i++) {
if($div->item($i)->getAttribute('id') == 'result_box') {
$tnl = $div->item($i)->nodeValue;
}
}
}
$child = $child->nextSibling;
}
$content = explode(" [tok] ", $tnl);
print_r($content);
}
?></p>
</body>
</html> |
Une autre version avec des comments de diverses possibilités que j'ai essayé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
<title>TEST 02</title>
<link rel="stylesheet" type="text/css" title="Design" href="css/design.css" />
</head>
<body>
<?php
$from= "fr";
$to = "en";
$source = "url:http://www.tv5.org/TV5Site/info/afp_article.php?idrub=15&xml=newsmlmmd.2f8b5b227cce71fce5efb88778a3bbd7.201.xml [tok] Pâte d'arachide contaminée aux USA: ouverture d'une enquête criminelle [tok] Le ministère américain de la Justice et l'Agence de réglementation de l'alimentation (FDA) ont ouvert une enquête criminelle dans l'affaire de la vaste intoxication alimentaire à la pâte d'arachide contaminée aux salmonelles, a indiqué vendredi un porte-parole de la FDA.";
echo $source.'<br />';
$new_url = 'http://translate.google.com/translate_t?langpair='.$from.'%7C'.$to.'&text='.urlencode($source).'#';
echo $new_url;
/*$doc = new DOmDocument;
if(@$doc->loadHTMLFile($new_url)) {
$h1 = $doc->getElementsByTagName("h1");
$child = $h1->item(0);
while ($child) {
if($child->nodeName=='form') {
$div = $child->getElementsByTagName("div");
for ($i = 0; $i < $div->length; $i++) {
if($div->item($i)->getAttribute('id') == 'result_box') {
$tnl = $div->item($i)->nodeValue;
}
}
}
$child = $child->nextSibling;
}
$tnl = mb_convert_encoding($tnl, 'ISO-8859-15', 'UTF-8');
$content = explode(" [tok] ", $tnl);
print_r($content);
}*/
$tmp = file_get_contents($new_url);
//$tmp = mb_convert_encoding($tmp, 'ISO-8859-1', 'UTF-8');
/*$begin = strpos($tmp, '<div id=result_box dir="ltr">') + 29;
$end = strpos($tmp, '<', $begin) - $begin;
$tmp = substr($tmp, $begin, $end);*/
print_r($tmp);
?>
</body>
</html> |
J'ai beau cherché, je comprends pas... Je m'en remets à vous