1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Eine Kodierung bei der Verbindung zu einer MySQL-Datenbank erzwingen
Diese Anleitung hilft bei der Behebung von Problemen mit Sonderzeichen (Akzente, Emojis usw.), die nicht korrekt angezeigt werden oder als Symbole wie ?? erscheinen, oft aufgrund einer falschen Kodierung bei der Verbindung zu MySQL.
Vorbemerkung
- Standardmäßig verwendet MySQL
UTF-8
. - Moderne MySQL-Server sind in der Regel so konfiguriert, dass sie standardmäßig
UTF-8
oderUTF-8MB4
verwenden.- Das 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.
MySQL / MariaDB Standard-Charset festlegen (Cloud-Server)
Mit einem Infomaniak Cloud-Server können Sie den Standard-Charset (utf8
oder utf8mb4
) festlegen:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Manager Infomaniak zuzugreifen (Hilfe benötigen?).
- Klicken Sie direkt auf den Namen des betreffenden Produkts.
- Klicken Sie auf MariaDB im linken Seitenmenü und wählen Sie den Standard-Charset aus:
Wenn Sie noch nicht zu MariaDB migriert haben, ist das Prinzip dasselbe:
Eine spezifische Kodierung erzwingen (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 Ihrem Umfeld explizit anpassen.
Bei den aktuellen Angeboten, platzieren Sie den folgenden Code in einer Datei user.ini
, die sich im Stammverzeichnis 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-Paketen, erzwingen Sie die MySQL-Verbindung in latin1
über die Datei .htaccess
, die sich im Stammverzeichnis Ihres Hostings befindet:
php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1