【发布时间】:2009-08-07 13:37:30
【问题描述】:
我有一个想要解析的法语网站,但在将 (uft-8) html 转换为 latin-1 时遇到问题。
问题表现在下面的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 可以正常完成。由于空格不正确,test1 似乎失败了,所以当转换为 ascii 时,它最终会成为未知字符 (�)。
如何确保两个测试都通过?
【问题讨论】:
-
为什么'&'和'nbsp;'之间有空格?这是您要解决的问题吗?
-
因为我不能在没有空格的情况下编写它,因为如果我不这样做,SO 会将其转换为空格