У меня есть следующий код, который пытается закодировать строку UTF-8 в UCS-2LE. Строка кажется допустимой, что можно проверить с помощью mb_check_encoding
, однако, когда я запускаю для нее iconv
, я получаю следующее уведомление:
Примечание: iconv(): обнаружен недопустимый символ во входной строке.
Есть идеи, в чем проблема?
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$string = 'Voiture ????';
$isValidUTF8 = mb_check_encoding($string, 'UTF-8');
echo 'Is valid UTF-8: ' . ($isValidUTF8 ? 'Yes' : 'No') . "\n";
$text1 = iconv('UTF-8', 'UCS-2LE', $string);
var_dump($text1);
Вывод:
Действует UTF-8: Да
Примечание: iconv(): обнаружен недопустимый символ во входной строке.
логический (ложный)