2016-11-09 5 views
0

Ich habe meine MAMP Pro auf die Version 4.0.6 von 3.x heute aktualisiert und seitdem habe ich das Problem, dass meine lokale Seite auf MAC OSX 10.11 unterstützt keine UTF-8-Zeichen mehr.UTF-8 nicht korrekt seit Aktualisierung auf MAMP PRO 4.0.6

So habe ich zum Beispiel das "Ã" Zeichen in meiner Mysql Datenbank, das sollte das "ü" Zeichen auf meiner Seite zeigen, aber es nicht, auch wenn ich ein "ü" Zeichen speichere es als a "ü" statt "ü" in der Datenbank.

Ich verwende die mysqli-Klasse und überprüft mit der Funktion get_charset, dass der Zeichensatz der mysql-Verbindung korrekt ist (utf8_general_ci). Auch die lokale Datenbank und ihre Tabellen haben den richtigen Zeichensatz (utf8_general_ci).

ich auch in der php.ini hinzugefügt:

default_charset = "utf-8"

In meinem Apache http.conf ich die Zeile hinzugefügt

AddDefaultCharset utf -8

In meinen HTML-HEAD-Dateien habe ich die folgenden Zeile:

meta http-equiv = "Inhaltstyp" content = "text/html; charset = utf-8"

noch das gleiche Problem, ich für jede Hilfe dankbar bin ...

EDIT: Wie Roland Starke und sagte junkfoofjunkie in den Kommentaren seiner völlig Recht vor, die Werte zu speichern in die Datenbank als "ü" und nicht "ü" (ich habe es lange falsch gemacht). Es stellte sich heraus, dass meine MAMP 4-Konfiguration korrekt war, aber meine MAMP 3-Konfiguration war falsch. Dazu meine Online-Version, die auf Amazon läuft RDS war falsch und nicht in UTF-8 konfiguriert, aber in Latin1 scheint RDS immer standardmäßig in Latein zu sein.Ich tat, was wtravish sagte, dass korrigieren: Converting RDS database to UTF-8

musste ich auch den Inhalt ändern, wird die folgende SQL-Code half mir:

UPDATE table_name SET
column_name = REPLACE (column_name, 'ay' 'ß'),
column_name = replace (column_name 'å¤', 'A'),
column_name = replace (column_name 'ü', 'u'),
column_name = replace (column_name 'ö', 'O'),
column_name = replace (column_name ", A„‘, 'A'),
column_name = replace (column_name 'Ü', 'U') ,
column_name = REPLACE (column_name, 'Ã -', 'Ö'),
column_name = REPLACE (column_name, 'â,¬', '€'),
column_name = REPLACE (column_name, '°' "°");

+0

„auch wenn ich eine speichere‚ü‘Charakter sie es als spart‚ü‘statt‚ü‘ in der Datenbank. " -> Klingt gut für mich. (?!) Vielleicht hatten Sie vor der Aktualisierung einen falschen Zeichensatz? –

+0

Wenn Sie "utf-8" auf Ihrer Website korrekt eingestellt haben, ** sollte ** als ** **, ** nicht ** ** speichern. Es ist also definitiv etwas anderes mit deiner Seite nicht in Ordnung. Das "Ü" ist KEIN UTF-8-Zeichen, es ist eine Kodierung eines Zeichens, das nicht mit dem Zeichensatz funktioniert, den Sie haben - daher vermute ich, dass Sie entweder eine andere Kodierung früher in der Datenbank oder in der Dateien? – junkfoodjunkie

+0

Danke euch beiden, es scheint, ich habe es vorher falsch gemacht, also eigentlich ist es richtig so ... – jeecode

Antwort

0

bearbeiten my.cnf und setzen diese Zeilen auf Abschnitt [mysqld]:

init_connect='SET collation_connection = utf8_unicode_ci' 

init_connect='SET NAMES utf8' 

character-set-server=utf8 

collation-server=utf8_unicode_ci 

skip-character-set-client-handshake 
Verwandte Themen