MySQL-Verbindung-Zeichensatz Probleme
Ich bin mit velosurf mit MySQL auf einem Mac, ohne Codierung Probleme, aber wenn ich auf einer Linux-Maschine, die Werte, die ich von velosurf sind nicht korrekt codiert.
Fand ich heraus, könnte es ein problem mit der Standard-Verbindung-Zeichensatz. Auf dem Mac hab ich:
mysql> show variables like "collation_%";
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
mysql> show variables like "character_set_%";
+--------------------------+--------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.5.11-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)
Während auf der linux-Maschine, die ich habe:
mysql> show variables like 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
Der Datenbank-Sortierreihenfolge und den Zeichensatz gesetzt werden, wenn ich die Datenbank erstellen. Mein problem ist, dass ich kann es nicht ändern, die Standard-Zeichensätze für die client/Verbindung/Ergebnisse.
Auch, es scheint nicht zu irgendeiner Weise legen Sie den Zeichensatz mit velosurf, wenn die Verbindung initiiert wird.
Irgendwelche Vorschläge?
set names utf8;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein Kommandozeilen-flag für MySQL zu setzen, Zeichen setzen. Sie könnten versuchen, dass? --default-character-set=utf8
--default-character-set=utf8
scheint nicht zu überschreiben, den Zeichensatz definiert .ini -/ .cnf. Habe ich auch nicht ein .ini für mein Windows MariaDB installation und--default-character-set=utf8
nicht, überschreiben die Standardeinstellung von latin1.Fand ich heraus, dass MySQL verwendet immer die Standard-Zeichensatz bei der Verbindung als root. Aber es funktioniert OK für eingeschränkte Benutzer (etwas, das ich getan haben sollte von Anfang an).
Dieses "feature" zu sein scheint Linux-spezifisch. Zumindest ist es nicht geschehen, in OS X.