Hallo zusammen,
ich habe heute meine WebAnwendung mit PHP und die Datenbank MySQL von latin1 auf UTF8 umgestellt.
Folgendes wurde gemacht.
in der my.ini des MySQL Servers:
default-character-set = utf8
character-set-server = utf8
collation-server= utf8_general_ci
init_connect = SET NAMES utf8
In der httpd.conf des Apache:
AddDefaultCharset utf-8
In allen PHP Seiten:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
in der php.ini:
default_charset = "UTF-8"
Dann einen SQL Dump mit PHPMyAdmin der gesamten DB.
Mit Editor geöffnet und alle Stellen
DEFAULT CHARSET=latin1 mit DEFAULT CHARSET=utf8 ersetzt.
Import mit PhpMyAdmin in Einstellung utf8
Apache und MySQL neu gestartet.
Auf den ersten Blick scheinen alle Sonderzeichen und Umlaute korrekt dargestellt zu werden.
ABER:
eine Tabelle "webuser" hatte in der Spalte Pword verschlüsselte Passwörter abgelegt, die ganz "wilde" Sonderzeichen enthielten (z.b. Å¡EfJkÂŽ4ý²)
Wenn sich nun ein User einloggen will, klappt dies nicht mehr. Offensichtlich stimmt das Passwort nicht mehr überein.
Es wäre nun nicht so schlimm, die User neu anzulegen weil es nur ganz wenig sind.
Mich würde aber interessieren warum dies mit der Umwandlung nicht geklappt hat?
vielen Dank und viele Grüße
hawk