Frage

Ich habe eine kleine Ajax-Anwendung mit PHP gebaut.

phpMyAdmin verwenden Ich habe eine MySQL-Datenbank auf UTF-8 gesetzt und haben eine Text-Datei enthält, utf-8-Daten in sie eingeführt werden.

Das funktionierte auf einem Windows-Rechner gut mit easyphp nach Zugabe von Zeichensatz-server = UTF-8 und default-character-set = utf8 auf die my.cnf-Datei.

Ich habe jetzt versucht, dies zu einem Produktionsserver zu bewegen, wo ich keinen Zugriff auf die Konfigurationsdatei haben, und Zeichen wie Umlaute werden nicht angezeigt.

Gibt es etwas, das in dem PHP-Code festgelegt werden kann (nicht die Konfigurationsdatei), dies zu beheben, oder ein Befehl kann ich geben mysql?

Ich habe versucht, ALTER DATABASE vweb_50 Standardzeichensatz UTF-8-COLLATE utf8_bin mit phpMyAdmin von utf8_general_ci zu versuchen, aber es machte keinen Unterschied.

War es hilfreich?

Lösung

Es gibt ein paar Dinge hier zu tun, und ich bin nicht sicher, ob ich verstehe Ihr Problem richtig, aber wenn ich tun, ich denke, die meisten davon mit den PHP-Funktionen angesprochen werden utf8_encode und utf8_decode :

  • utf8_encode
    • Codiert eine ISO-8859-1 String in UTF-8
  • utf8_decode
    • Diese Funktion decodiert Daten, angenommen UTF-8 codiert sein, ISO-8859-1.

Schauen Sie auch in htmlentities , wenn nötig.

Andere Tipps

Wenn Sie utf-8 in der gesamten Anwendung verwenden (was ich empfehlen würde), die Sie nicht utf8_encode / Decoder-Funktionen benötigen. Haben Sie überprüft, welche Kodierung Ihrer Seite in serviert wird? Wahrscheinlich wird der Server so konfiguriert iso-8859-1 als charset zu senden, während der Testumgebung sendet utf-8. Stellen Sie die Codierung mit einem Content-Type-Header:

header("Content-Type: text/html; charset=utf-8");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top