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


iconv(): Detected an incomplete multibyte character in input string

嗨,我看到过关于陷阱的问题,但到目前为止,当我尝试陷阱时,我看到的例子都没有帮助我。我收到错误"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函数中的问题该函数返回的值为数组。单独使用。