• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Umlaute werden nicht richtig angezeigt.

OlliK

Neues Mitglied
Hallo Gemeinde,

seit der Server-Umstellung werden die Umlaute nicht richtig angezeigt - siehe Bild.

Ich habe den Zeichensatz/Kollation der Verbindung zum Datenbank-Server alt/neu verglichen und da steht das selbe: utf8mb4_unicode_ci

Hat jemand eine Lösung?

Mit freundlichen Grüßen
Olli.
 

Anhänge

  • 4E4E00E1-AD6A-4097-94CB-AA5ABBEF1AD5.jpeg
    4E4E00E1-AD6A-4097-94CB-AA5ABBEF1AD5.jpeg
    438,8 KB · Aufrufe: 5
Werbung:
Werbung:
Das wäre die Funktion ConnectDBSQL, mit den alten und nicht mehr funktionierenden zugangsdaten.
 

Anhänge

  • 38AA57A4-2AC6-4E56-A939-CD917E981235.jpeg
    38AA57A4-2AC6-4E56-A939-CD917E981235.jpeg
    377,5 KB · Aufrufe: 5
Hier ein guter Artikel. Ich rate auch zur Nutzung von PDO. Bei PDO kannst Du wie folgt aufbauen.

Bei Charset setze dein gewünschtes Format ein.

PHP:
// Verbindungsparameter
$host = 'localhost';
$dbname = 'deine_datenbank';
$benutzername = 'dein_benutzername';
$passwort = 'dein_passwort';

// Datenbankverbindung herstellen
try {
    $verbindung = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $benutzername, $passwort);
    
    // Weitere Einstellungen, wenn benötigt
    $verbindung->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('Verbindung fehlgeschlagen: ' . $e->getMessage());
}
 
Werbung:
Ein
PHP:
$mysqli -> set_charset("utf8");
in der Connect-Funktion sollte auch helfen, ohne auf PDO zu gehen. Achte aber darauf, dass dein HTML auch auf UTF-8 gestellt ist:
HTML:
<meta charset="utf-8">

Und noch ein Hinweis:
Beim Einsatz von SQL-Datenbanken sollte das Abrufen aller Spalten eines Datensatzes per SELECT * vermieden werden. Stattdessen sollten die gewünschten Spaltennamen explizit aufgelistet werden (SELECT col1, col2 FROM …). Einige Vorteile:
Häufig werden in einer Abfrage nicht alle Spalten benötigt, die aktuell existieren oder in Zukunft existieren könnten, sodass unnötige Daten übertragen werden.
Bei expliziter Angabe der gewünschten Spalten können Datenbanksysteme unter Umständen Indizes zur Beantwortung von Abfragen nutzen.
Eine Auflistung der Spaltennamen macht den Code verständlicher, da die Tabellenstruktur nicht erst im Datenbankschema nachgelesen werden muss.
Bei Änderungen am Datenbankschema (etwa bei Entfernung oder Umbenennung einer Spalte) schlägt eine Query, die kein SELECT * nutzt, sofort fehl. Das ist hilfreich, da so keine Stelle im Code übersehen werden kann, an der wahrscheinlich auch die PHP-Datenstrukturen an das neue Schema angepasst werden müssen.
 
Ein
PHP:
$mysqli -> set_charset("utf8");
in der Connect-Funktion sollte auch helfen, ohne auf PDO zu gehen. Achte aber darauf, dass dein HTML auch auf UTF-8 gestellt ist:
HTML:
<meta charset="utf-8">

Und noch ein Hinweis:
Beim Einsatz von SQL-Datenbanken sollte das Abrufen aller Spalten eines Datensatzes per SELECT * vermieden werden. Stattdessen sollten die gewünschten Spaltennamen explizit aufgelistet werden (SELECT col1, col2 FROM …). Einige Vorteile:
Häufig werden in einer Abfrage nicht alle Spalten benötigt, die aktuell existieren oder in Zukunft existieren könnten, sodass unnötige Daten übertragen werden.
Bei expliziter Angabe der gewünschten Spalten können Datenbanksysteme unter Umständen Indizes zur Beantwortung von Abfragen nutzen.
Eine Auflistung der Spaltennamen macht den Code verständlicher, da die Tabellenstruktur nicht erst im Datenbankschema nachgelesen werden muss.
Bei Änderungen am Datenbankschema (etwa bei Entfernung oder Umbenennung einer Spalte) schlägt eine Query, die kein SELECT * nutzt, sofort fehl. Das ist hilfreich, da so keine Stelle im Code übersehen werden kann, an der wahrscheinlich auch die PHP-Datenstrukturen an das neue Schema angepasst werden müssen.
Vielen Dank an alle für Informationen
 
Zurück
Oben