iconv
поддерживает кодировку UTF-16LE
.
. Вы можете использовать ее для переноса кодировки с UTF-16LE
на UTF-8
:
$result = iconv($in_charset = 'UTF-16LE' , $out_charset = 'UTF-8' , $str);
if (false === $result)
{
throw new Exception('Input string could not be converted.');
}
См. iconv
Документы .
Мне просто интересно, доступны ли все кодовые точки в UTF-16LE
доступны в UTF-8
.Но я предполагаю, что это должно соответствовать вашему случаю.
Редактировать: Мне не удалось воспроизвести проблему на собственной коробке, но на другой коробке Я столкнулся с этим уведомлением:
Примечание: iconv () [function.iconv]: неправильная кодировка, преобразование из UTF-16LE' to
UTF-8 'не разрешено в ...
Похоже, что не все iconv
версии на самом деле могут конвертировать UTF-16LE
в UTF-8
.
Возможно, это обходной путь для использования mb_convert_encoding
Docs вместо этого, по крайней мере, в этом случае ( Demo ):
$result = mb_convert_encoding($str , 'UTF-8' , 'UTF-16LE');