Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

php

utf-8

Hi I have seen this question asked around the traps, but so far none of the examples I have seen have helped me, when I tried them. I am getting the error "iconv(): Detected an incomplete multibyte character in input string ", on certain input. When using the following functions together. Do you have any ideas as to how to get this error message to go away. I am attempting to convert an input string with mixed encoding to UTF8.

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

EDIT: Hi all after some looking around the following worked for us:

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

You might be able to improve it, but it fixed our error.

like image 235
GodLovesYou Avatar asked Sep 29 '14 04:09

GodLovesYou


1 Answers

Ok so here is what worked for us.

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;
}
like image 176
GodLovesYou Avatar answered Oct 16 '22 12:10

GodLovesYou