Привет, я видел этот вопрос, заданный вокруг ловушек, но до сих пор ни один из примеров, которые я видел, не помог мне, когда я их попробовал. Я получаю ошибку «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;
}
Вы могли бы улучшить его, но это исправило нашу ошибку.
Хорошо, вот что сработало для нас.
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;
}
Проблема в том, что ваша функция mb_detect_encoding возвращает значение этой функции — массив.
используйте это отдельно.