Umlaute werden nicht dargestellt

Hallo,

ich lese einen String mit Umlauten aus einer SQLi Datenbank von MyPhPAdmin aus. Soweit, so gut…

Der String ist in einem UTF8_bin Tabellenfeld gespeichert und wird korrekt angezeigt. Die Webseite hat den

Tag.

Wenn ich den String aus der Datenbank anzeigen lasse, habe ich trotzdem ein ? anstelle aller Umlaute…

Wo ist meine Deklaration falsch?

Vielleicht fehlt ein https://www.php.net/manual/de/mysqli.set-charset.php

Der Tipp von dir hat angezeigt, dass der Text in

Initial character set: latin1 Current character set: utf8

sei. Aber nachdem ich latin1 in der Tabelle eingestellt hatte wird der Text nun richtig dargestellt.
In der Tabelle ist hab ich zwar jetzt wieder ?? aber im Browser ist es korrekt, damit kann ich leben

Das ist Quatsch! Wenn du alles, aber auch wirklich alles, im UTF-8 Format hast, gibt es solche Probleme nicht.
[ul]
[li]Tabelle im UTF-8 Format[/li][li]Character-Set von PHP zu DB auf UTF-8[/li][li]HTML-Charset auf UTF-8[/li][li]PHP-Script im UTF-8 Format[/li][/ul]

Die Webseite hat im HTML Kopf in den Metainfos

<meta http-equiv="content-type" content="text/html; charset=utf-8" >

und das Tabellenfeld ist mit latin1_bin konfiguriert. Ich muss also zusätzlich noch das Eingabefeld im PHP-Code mit UTF-8 konfigurieren?

Du musst in erster Linie alles in Deiner Datenbank auf UTF-8 umstellen. Wenn ein Tabellenfeld latin1 kodiert ist wird das schon nicht gehen.

was ist denn dann die richtige codierung für die Tabelle?

UTF8_bin Tabellenfeld gespeichert und wird korrekt angezeigt. Die Webseite hat den

das im Startpost scheint ja nicht gepasst zu haben…

In Beitrag #4 steht alles was du beachten musst.

Das sollte auch so reichen

<meta charset="utf-8">

Ich hab in der Datenbankverbindung noch folgendes angegeben:

$mysqli = new mysqli(„localhost“,„my_user“,„my_password“,„my_db“);
$mysqli → set_charset(„utf8“);

Jetzt hab ich sowohl auf der Homepage, als auch in der Datenbank Umlaute korrekt angezeigt