Единичное тестирование для поддержки 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, и является ли метод выше того, что можно изменить для решения этой цели?

Извините, но это не имеет смысла. Ваш тестовый файл закодирован в одном формате. Все, что вы помещаете в тестовую строку, будет закодировано так же, как и файл. Я бы тоже не полагался на функцию mb_detect_encoding. Возьмем следующую строку: «abcde». Это может быть ASCII или UTF-8. Вы не можете судить, потому что нет специального характера. Кодирование – это способ, которым вы несовместимы с данными.

//РЕДАКТИРОВАТЬ

Чтобы сделать вашу тестовую работу, выполните $this->assertTrue(mb_detect_encoding($original, 'UTF-8') === 'UTF-8')