Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie man internationale Zeichen in PHP / MySQL / Apache richtig behandelt

Apache

Die Servercodierung muss entweder nicht festgelegt oder auf UTF-8 festgelegt sein. Dies geschieht über die Apache-Direktive AddDefaultCharset. Dies kann zum virtuellen Host oder zur allgemeinen Datei gehen (siehe Dokumentation).

AddDefaultCharset utf-8

MySQL

  • Setzen Sie die Sortierung der Datenbank auf UTF-8
  • Stellen Sie die Verbindungscodierung ein. Dies kann wie von jemandem gesagt mit mysqli_set_charset erfolgen, oder indem Sie Folgendes direkt nach dem Verbinden senden:
    SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'

PHP

1- Sie sollten den HTML-Zeichensatz der Seite über ein Meta-Tag auf der Seite oder über einen PHP-Header auf UTF-8 setzen:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-or-
    header('Content-type: text/html; charset=utf-8');

2- Sie sollten immer die mb*-Version von String-bezogenen Funktionen verwenden, zum Beispiel mbstrlen statt strlen, um die String-Länge eines Strings zu erhalten.

Dies sollte es Ihnen ermöglichen, UTF-8 überall zu haben, von den Seiten bis zu den Daten. Ein Test, den Sie machen können:Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle auf der Seite, indem Sie Firefox verwenden, und wählen Sie Seiteninformationen anzeigen aus. Die effektive Kodierung ist auf dieser Seite aufgelistet.