Resolvendo problemas de Charset no PHP
Publicado em: 02/02/2020 14:49 - Atualizado em: 02/03/2020 20:14
Muitas vezes recebemos informação de algum banco de dados e/ou arquivo com um charset desconhecido, ou que não seja compatível com a interface de nossa aplicação.Utilizando as funções mb_convert_encoding e mb_detect_encoding (nativas do php) consegue-se identificar na maior parte dos casos e converter a stringpara o charset desejado, não prejudicando assim a exibição do texto.

O "grande truque" está na utilização da função mb_detect_encoding, que serve para identificar o charset recebido e, caso a função não consiga identificar, a mesma retornafalse.

Perante isso, definimos um default em caso de retorno false e passamos esses valores por parâmetro para função mb_convert_encoding que irá realizar a conversão em si:

    $str = "Função para verificação de charset";
    $detect = mb_detect_encoding($str);
    $charset = $detect === false ? 'UTF-8' : $detect;
    echo mb_convert_encoding($str, "ISO-8859-1", $charset);

share
arrow_back