• 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
 
...
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:
...
Der Nachteil, du musst jedes mal deinen Code anpassen, wenn du Spalten hinzufügst oder löscht.

Und ja, ich werde es nicht müde, diese alten verknöcherten Ansichten zu diskutieren.
 
Werbung:
Der Nachteil, du musst jedes mal deinen Code anpassen, wenn du Spalten hinzufügst oder löscht.
Faulheit (was anderes ist dieser "Grund" nicht) war beim Programmieren noch nie ein guter Ratgeber.
Und ja, ich werde es nicht müde, diese alten verknöcherten Ansichten zu diskutieren.
Ob das Ausgraben eines mehrere Monate alten Threads dafür der richtige Ort ist, sei jetzt mal dahingestellt …
 
It appears that you have a problem with umlauts that do not appear correctly after a server change, even though you have made the correct character set and the correct sort settings. This can be frustrating, but there are a few steps you can take to fix the problem and possibly solve it:
Make sure that the encoding settings for your database, web server and application are all set to UTF-8 or utf8mb4 to properly support umlauts.
Make sure that the data stored in your database actually contains the correct umlauts. It is possible that the problem lies with the data itself and not with the server configuration.
Make sure that the connection settings between your application and the database server are configured to use UTF-8 encoding. This also includes settings in the connection string or the configuration file of your database.
Use various tools or methods to query the database and retrieve data that contains umlauts. This allows you to find out whether the problem is specific to your application or a general problem with server configuration.
Search for server-specific configurations or settings that could affect character encoding, such as. B. Apache or Nginx configurations.
If you cannot fix the problem yourself, you should contact your hosting provider or a developer who has experience with server administration and character encoding problems for further support.
If you follow these steps and fix the problem carefully, you should be able to determine the cause and implement a solution to correctly display umlauts after the server change.
 
Werbung:
Zurück
Oben