J'ai un site en français que je veux analyser, mais je rencontre des problèmes pour convertir le html (uft-8) en latin-1.PHP: Conversion de UTF-8 HTML
Le problème est illustré dans le cas de test PhpUnit:
class Test extends PHPUnit_Framework_TestCase {
private static function fromHTML($str){
return html_entity_decode($str, ENT_QUOTES, 'UTF-8');
}
public function test1(){
//REMOVE THE SPACE between the '&' and 'nbsp'. SO won't
//let me write it without the space
$strFrom = 'Wanted& nbsp;: les Chasseurs de Tamriel';
$strTo = 'Wanted : les Chasseurs de Tamriel';
$strFrom = self::fromHTML($strFrom);
$this->assertEquals($strTo, $strFrom);
}
public function test2(){
$strFrom = 'Remplacement d’Almalexia';
$strTo = 'Remplacement d’Almalexia';
$strFrom = self::fromHTML($strFrom);
$this->assertEquals($strTo, $strFrom);
}
}
test2 complète bien. test1 semble échouer car l'espace n'est pas correct, donc lorsqu'il est converti en ascii, il finit comme un caractère inconnu ().
Comment puis-je m'assurer que les deux tests réussissent?
Pourquoi y a-t-il un espace entre '&' et 'nbsp;'? Est-ce ce que vous essayez de réparer? – Nate
Parce que je ne peux pas l'écrire sans l'espace que SO le convertit en un espace si je ne le sais pas – Yacoby
Ecrivez-le comme "& nbsp;". – Bombe