Mysql
 sql >> Database >  >> RDS >> Mysql

Latin-1 / UTF-8 codifica php

Il tuo output HTML deve essere in un'unica codifica, non c'è modo di aggirarlo. Ciò significa che il contenuto con codifiche diverse deve prima essere convertito nella codifica HTML. Anche se è possibile farlo con iconv o mb_convert_encoding , ci sono due problemi che devi risolvere:

  1. Devi conoscere (o indovinare) la codifica corrente del contenuto
  2. Devi farlo manualmente, ovunque

Ad esempio, una soluzione teorica sarebbe quella di scegliere UTF-8 come codifica HTML e quindi eseguire questa operazione per tutte le stringhe che verranno emesse:

$string = '...'; // from the database

// If it's not already UTF-8, convert to it
if (mb_detect_encoding($string, 'utf-8', true) === false) {
    $string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}

echo $string;

Il codice sopra presuppone che il contenuto non UTF-8 sia codificato in latino-1, il che è ragionevole in base alla tua domanda.