Hi,
Was hat er dann davon? Sabotieren kann immer jemand. Wenn jemand Mist machen will, hat er noch ganz andere Möglichkeiten als eine andere Zeichenkodierung zu verwenden.
Haste auch wieder recht.
Passt denn der Inhalt zur Angabe? Zeigt phpMyAdmin alles (die Umlaute vor allem) richtig an?
Jau. Wird alles pikobello angezeigt.
Ich hatte nur zuletzt 2 Einträge, in denen diese typischen Umlautfehlerzeichen drin waren und bei denen ich keine Ahnung habe, woher sie kommen. Ich mutmaße auf falsch eingestellte Browserbeim User (bzw. falsches Zeichenkodierungsraten beim Browser).
- Datenbankinhalt umkodieren, also jedes einzelne String-Feld. Wenn es nicht zu viele sind, mach es zu Fuß, ansonsten lass dir ALTER-TABLE-Statements erstellen.
Na, es sind schon zu viele. Könnte ich nicht auch einen Dump erzeugen und per Texteditor alle Kodierungen suchen und ersetzen?
Zusätzlich kannst du noch die Angabe der Tabelle und die der Datenbank umstellen.
Wo genau macht man das bei phpmyadmin?
Bis hier hin kannst du alles mit dem phpMyAdmin machen oder kontrollieren. Den Teilweg zwischen DBMS und PHP kannst du schlecht prüfen, weil du zwecks Ausgabe üblicherweise den Teilweg zwischen PHP/Webserver und dem Browser benötigst.
Jau, stimmt.
- Also, nach jedem mysql_connect (oder wenn du mysqli verwendest dessen Äquivalent) rufst du mysql_set_charset('utf8') auf
Ui, davon habe ich einige.
Der legt nur die Default-Werte fest. Alles andere kannst du problemlos überschreiben. Im Falle der Verbindungskodierung ...
Welche relevanten für mein Problem gibt es denn noch?
- PHP-Code-Dateien müssen nicht zwangsläufig bearbeitet werden. Wenn du nur Code drin stehen hast,
Nein, ich habe nicht nach Code und Templates getrennt, sondern alle Ausgaben im Code mit drin.
- PHP-Code. Wenn du die Daten nur vom DBMS zum Browser und wieder zurück durchreichst, ohne Stringverarbeitung anzuwenden, dann brauchst du nichts weiter zu machen.
Im Wesentliche nutze ich
mysql_real_escape_string
htmlspecialchars
trim
nl2br
rawurlencode
- was sonst noch?
Welche Komponenten sind an deinem Projekt noch beteiligt? Textdateien? Dateinamen? Andere Server? Mailversand?
Ich includiere ein paar Textdateien, aus denen ich mir Konfigurationseinstellungen hole. Was ist mit denen?
Dann natürlich CSS-Daten und ich versende über die php-funktion 'mail' Emails, sowie über die Klasse 'phpmailer'.
Was meinst Du mit Dateinamen? Die sind alle a-z/0-9.
Die reine Konvertierung von Dateien geht beispielsweise mit iconv. Das ist ein Unix-Programm. Eine Windows-Version ist auf alle Fälle in Cygwin enthalten.
Ah, gut zu wissen! :-)
Grüße, Basti