我想转换为Unicode,并创建一些单元测试,以确保Unicode是工作。
这里是我当前的代码,从而未能在mb_detect_encoding()线,并且我也不能确定它是否是Unicode支持有效的测试:
function testMultiLingualEncodings(){
// Create this string via a heredoc.
$original = '
A good day, World!
Schönen Tag, Welt!
Une bonne journée, tout le monde!
يوم جيد، العالم
좋은 일, 세계!
Một ngày tốt lành, thế giới!
こんにちは、世界!
'; // Contains international characters from utf-8
$this->assertTrue(mb_detect_encoding($original, 'UTF-8', true) === true); // Fails regardless of whether strict is true or not.
$returned = query_item("select :multi limit 10", array(':multi'=>$original)); // Select this exact string, parameterized, from the database
//debug($returned, string_diff($returned, $original));
$this->assertTrue((bool)$original); // test original isn't null.
$this->assertTrue((bool)$returned); // Test returned string isn't null.
$this->assertTrue($original === $returned); // Test original exactly matches returned string
}
所以mb_detect_encoding()表示,上述初始字符串不是UTF-8。 我也试图将字符串传递到数据库中,并把它弄出来,然后用原始字符串进行比较。 我不知道这是否是数据库连接的编码的一个有效的测试,但是。
因此,在一般情况下,我怎么可以创建支持UTF-8单元测试,并且是上述一些方法,可以进行修改,以解决这一目标?