UTF-8 ist eine unbeständige Herrin. Für eine typische Webanwendung müssen Sie UTF-8 auf vielen Ebenen einstellen. Auch wenn der phpMyAdmin-Code gut mit UTF8 funktioniert, funktioniert er nicht im Vakuum: Die Serverkonfiguration ist wichtig. So ist die Datenbank und die Datenquelle für die Datenbank. Lassen Sie uns die möglichen Reibungsbereiche in einer allgemeinen Anwendung zusammenfassen, mit besonderem Fokus auf den für phpMyAdmin interessanten Bereichen.
A. Datenquelle
Wenn Daten in die Datenbank importiert werden, z. B. aus einer Textdatei, müssen sie die richtige Kodierung haben. Die Diakritiken werden möglicherweise in Excel angezeigt, die Kodierung kann jedoch beliebig sein. Sie können also eine CSV-Datei haben, die zwar richtig aussieht, aber nicht ordnungsgemäß importiert wird. Sie können die Kodierung Ihrer CSV-Datei in einem Texteditor wie EditPad oder einer IDE wie Komodo überprüfen und konvertieren. In Notepad ++, über das viele Benutzer verfügen, können Sie "Encoding" auswählen, um Ihre aktuelle Codierung anzuzeigen, und Sie können Encoding / Convert to UTF8 auswählen.
B. In Ihrer Datenbank. Der Zeichensatz und die Sortierreihenfolge der Tabelle müssen auf UTF-8 eingestellt sein. Es klingt, als hätten Sie es vielleicht schon getan.
Wenn nicht, brauchen Sie etwas wie:
ALTER TABLE MyTable DEFAULT CHARACTER SET utf8, COLLATE utf8_general_ci;
Das ist die generische Einstellung, aber Ihre rumänische Kollatierung sollte auch funktionieren.
C. Die Verbindung zur Datenbank. Sie brauchen etwas wie:
$connectDSN = "mysql:host={$db_host};dbname={$db_name};charset=UTF-8";
PhpMyAdmin sollte sich korrekt verbinden. Auf der Landingpage sollten Sie sehen
Server charset: UTF-8 Unicode (utf8)
Wenn nicht, lies weiter.
D. php muss UTF8 verarbeiten. In php.ini wollen Sie etwas wie:
default_charset = UTF-8 mbstring.language = Neutral mbstring.internal_encoding = UTF-8 mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.detect_order = auto mbstring.substitute_character = “0xFFFD”
Sie können Ihre Servereinstellungen mit phpinfo () überprüfen. Auf einem gemeinsam genutzten Host haben Sie normalerweise keinen Zugriff auf php.ini und müssen die Einstellungen direkt im Skript ändern. Denken Sie übrigens daran, die mb-Funktionen zu verwenden.
E. Header-Setup
Damit der Browser wissen kann, was er bekommt, muss er einen Header wie den folgenden erhalten, der von PHP gesendet wird:
<?php header('Content-type: text/html; charset=UTF-8'); ?>
Dies sollte kein Problem mit phpMyAdmin sein. In Firefox können Sie mithilfe der Web Developer-Erweiterung Informationen anzeigen / Seiteninformationen anzeigen. Auf der Registerkarte Allgemein wird Ihnen die Kodierung angezeigt.
F. HTML-Meta-Tag
Dies wird empfohlen, um dem Browser zu helfen.
<meta charset="UTF-8">
Dies sollte kein Problem mit phpMyAdmin sein. Überprüfen Sie erneut im Browser, welche Codierung angezeigt wird.
G. Font
Der Browser verfügt möglicherweise nicht über die Schriftart, um einige Zeichen anzuzeigen, obwohl moderne Versionen ziemlich gut zu Fallback-Schriftarten sind. Dies ist wahrscheinlich kein Problem in Ihrem Fall.
Es gibt also viele Orte, an denen Dinge schief gehen können.
Ich hoffe, das hilft Ihnen, das Problem zu identifizieren!
Wenn alles in einer Reihe steht, dann magisch ... Sie bekommen überall UTF8.
Und vergiss nicht:
ಇಲ್ಲಿ ಸಂಭವಿಸು ಇಂದೆನ್ನ ಹೃದಯದಲಿ
ನಿತ್ಯವೂ ಅವತರಿಪ ಸತ್ಯಾವತಾರ