dedlfix: zeichensatz/umlaute-problem in mysql-datenbank

Beitrag lesen

Hi!

  1. wen ich jetzt alle parameter auf utf-8 umstelle, wie wirkt sich das auf meine bestehenden daten aus? nur auf die umlaute/sonderzeichen, die ohnehin im moment so nicht brauchbar sind?

Auf deine Daten wirkt sich nur das aus, was du direkt mit ihnen anstellst und das wäre die Kodierung der einzelnen Felder. Weder die Kodierungsangabe der Tabelle, noch der Datenbank noch die des Systems haben einen direkten Einfluss auf die bestehenden Daten, denn diese Nicht-Feld-Kodierungen sind nur Default-Werte für neu anzulegende Dinge.

Die System-Einstellung (character-set-server) ist ausschließlich ein Default-Wert für neu angelegte Datenbanken, wenn dabei keine Kodierung genannt wurde.
Der Wert für Datenbanken (character-set-database) ist hauptsächlich ein Default-Wert für neu angelegte Tabellen, wenn dabei keine Kodierung genannt wurde.
Die Einstellung der Tabelle ist wiederum ein Default-Wert für neu angelegte Felder, wenn dabei keine Kodierung genannt wurde.
Die Feldkodierung ist endlich eine, mit der wirklich was passiert: in der werden die Daten abgelegt. Kommen sie anderswoher anders kodiert (also wenn MySQL davon ausgeht, dass sie anders kodiert seien) werden sie umkodiert. Beim Auslesen wird auch gegebenenfalls umkodiert.
Fir die Verbindung zum Client gibt es gleich drei Default-Werte (die alle von SET NAMES behandelt werden), die ich jetzt nicht erläutere. Wichtig ist nur, dass sie angeben, in welcher Kodierung ankommende Daten interpretiert werden und abgehende gesendet werden, sowie dass zum Einstellen SET NAMES und nicht SET CHARACTER SET zu verwenden ist, wenn mysql(i)_set_charset() nicht verwendet werden kann.

  1. kann ich diese globalen parameter dauerhaft verändern, wenn ich keinen direkten serverzugriff habe? (nur über php bzw. PMA)

Nein. Zentral konfigurieren kann man sowieso nur character-set-server.

  1. was ist der genaue unterschied zw. utf8_unicode_ci und utf8_general_ci bzw. was soll man (im deÜtschsprÄchigen rÄum) verwenden?

Bitte im Handbuch nachlesen und dann selbst entscheiden: Unicode Character Sets.

Lo!