iconv (): обнаружен неполный многобайтовый символ во входной строке

Привет, я видел этот вопрос, заданный вокруг ловушек, но до сих пор ни один из примеров, которые я видел, не помог мне, когда я их попробовал. Я получаю ошибку «iconv (): обнаружен неполный многобайтовый символ во входной строке», на определенный вход. При одновременном использовании следующих функций. Есть ли у вас какие-либо идеи относительно того, как заставить это сообщение об ошибке исчезнуть? Я пытаюсь преобразовать входную строку со смешанным кодированием в UTF8.

    function ConvertToUTF8($text){
return iconv(mb_detect_encoding($text, mb_detect_order(), false), "UTF-8//IGNORE", $text);
}

РЕДАКТИРОВАТЬ: Привет всем после некоторого осмотра, у нас сработало следующее:

 function ConvertToUTF8($text){

$encoding = mb_detect_encoding($text, mb_detect_order(), false);

if($encoding == "UTF-8")
{
$text = mb_convert_encoding($text, 'UTF-8', 'UTF-8');
}$out = iconv(mb_detect_encoding($text, mb_detect_order(), false), "UTF-8//IGNORE", $text);return $out;
}

Вы могли бы улучшить его, но это исправило нашу ошибку.

7

Решение

Хорошо, вот что сработало для нас.

function ConvertToUTF8($text){

$encoding = mb_detect_encoding($text, mb_detect_order(), false);

if($encoding == "UTF-8")
{
$text = mb_convert_encoding($text, 'UTF-8', 'UTF-8');
}$out = iconv(mb_detect_encoding($text, mb_detect_order(), false), "UTF-8//IGNORE", $text);return $out;
}
6

Другие решения

Проблема в том, что ваша функция mb_detect_encoding возвращает значение этой функции — массив.
используйте это отдельно.

0

По вопросам рекламы [email protected]