Php iconv():在输入字符串中检测到不完整的多字节字符

Php iconv():在输入字符串中检测到不完整的多字节字符,php,utf-8,Php,Utf 8,大家好,我看到过关于陷阱的问题,但到目前为止,我所看到的例子中没有一个对我有帮助,当我尝试它们的时候。我收到错误“iconv()”:在某些输入上的输入字符串“中检测到不完整的多字节字符。同时使用以下功能时。关于如何消除此错误消息,您有什么想法吗。我正在尝试将混合编码的输入字符串转换为UTF8 function ConvertToUTF8($text){ return iconv(mb_detect_encoding($text, mb_detect_order(), f

大家好,我看到过关于陷阱的问题,但到目前为止,我所看到的例子中没有一个对我有帮助,当我尝试它们的时候。我收到错误“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;
}

您可能可以改进它,但它修复了我们的错误。

mb\u detect\u编码函数中的问题此函数返回的值为数组。
单独使用。

好的,下面是对我们有效的方法

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;
}

示例字符串在哪里?根据PHP手册,它应该返回一个字符串,哪个部分返回一个数组?字符串mb_detect_encoding(字符串$str[,混合$encoding_list=mb_detect_order()[,bool$strict=false]])如果无法从给定字符串中检测到编码,则返回false。请检查返回的内容。