Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Latin-1 / UTF-8-Codierung php

Ihre HTML-Ausgabe muss in einer einzigen Codierung vorliegen, daran führt kein Weg vorbei. Das bedeutet, dass Inhalte in anderen Kodierungen zuerst in Ihre HTML-Kodierung konvertiert werden müssen. Das ist zwar mit iconv möglich oder mb_convert_encoding , gibt es zwei Probleme, die Sie lösen müssen:

  1. Sie müssen die aktuelle Kodierung des Inhalts kennen (oder erraten)
  2. Sie müssen dies überall manuell tun

Eine theoretische Lösung wäre beispielsweise, UTF-8 als HTML-Kodierung auszuwählen und dies dann für alle Zeichenfolgen zu tun, die Sie ausgeben werden:

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

Der obige Code geht davon aus, dass Nicht-UTF-8-Inhalte in Latin-1 codiert sind, was Ihrer Frage nach angemessen ist.