Mysql
 sql >> Base de données >  >> RDS >> Mysql

Encodage Latin-1 / UTF-8 php

Votre sortie HTML doit être dans un seul encodage, il n'y a pas moyen de contourner cela. Cela signifie que le contenu dans différents encodages doit d'abord être converti dans votre encodage HTML. Bien que cela soit possible avec iconv ou mb_convert_encoding , vous devez résoudre deux problèmes :

  1. Vous devez connaître (ou deviner) l'encodage actuel du contenu
  2. Vous devez le faire manuellement, partout

Par exemple, une solution théorique serait de choisir UTF-8 comme encodage HTML, puis de le faire pour toutes les chaînes que vous allez générer :

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

Le code ci-dessus suppose que le contenu non-UTF-8 est encodé en latin-1, ce qui est raisonnable selon votre question.