Wissensdatenbank

1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!

Erzwingen einer Kodierung beim Verbinden mit einer MySQL-Datenbank

Diese Anleitung hilft Ihnen, Probleme mit Sonderzeichen (Akzente, Emojis usw.) zu lösen, die nicht korrekt angezeigt werden oder als Symbole wie ?? erscheinen, oft aufgrund einer falschen Kodierung bei der Verbindung zu MySQL.

 

Vorwort

  • Standardmäßig verwendet MySQL UTF-8.
  • Neuere MySQL-Server sind in der Regel so konfiguriert, dass sie standardmäßig UTF-8 oder UTF-8MB4 verwenden.
    • Dies ist für die meisten Fälle geeignet, insbesondere für internationale Sprachen und Emojis.
  • Nehmen Sie auch Kenntnis von dieser anderen Anleitung, um zu lernen, wie Sie Probleme mit der Kodierung von nicht-europäischen Zeichen und Emojis in Ihren Entwicklungen vermeiden können.

 

Standardmäßige Festlegung des MySQL / MariaDB Zeichensatzes (Cloud-Server)

Mit einem Infomaniak Cloud-Server können Sie den Standardzeichensatz (utf8 oder utf8mb4) festlegen:

  1. Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
  2. Klicken Sie direkt auf den Namen, der dem betreffenden Produkt zugewiesen wurde.
  3. Klicken Sie in der linken Seitenleiste auf MariaDB.
  4. Wählen Sie den Standardzeichensatz aus:
  5. Speichern Sie Ihre Änderungen am Ende der Seite.

 

Erzwingen einer bestimmten Kodierung (latin1 zum Beispiel)

Wenn Sie mit einer Datenbank in latin1 (ISO-8859-1) arbeiten müssen, müssen Sie die Kodierung bei der Verbindung entsprechend Ihrer Umgebung explizit anpassen.

Bei den aktuellen Angeboten fügen Sie den folgenden Code in eine Datei user.ini ein, die sich in der Wurzel Ihres Hostings befindet:

mysql.connect_charset = "latin1"
mysqli.connect_charset = "latin1"
pdo_mysql.connect_charset = "latin1"

oder in PHP (MySQL-API):

mysql_query("SET CHARACTER SET latin1");

 

Bei den alten Hosting-Angeboten erzwingen Sie die MySQL-Verbindung in latin1 über die Datei .htaccess, die sich in der Wurzel Ihres Hostings befindet:

php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1

War diese FAQ nützlich?