Mysql2::Error: Incorrect string value: '\xE2\x80\xA8\x09
Ich habe eine rails-Anwendung. Manchmal, wenn ein Benutzer schreibt in einem text-Feld und eine Abfrage ausgeführt wird, aktualisieren dieses Feld in der MySQL-Datenbank, bekomme ich diese Fehler melden:
UPDATE-Boote SET Beschreibung = 'Vive la experiencia única de navegar abordo de un clásico de madera de lujo como Mako. Te emocionará.', updated_at = '2015-03-10 20:10:32', WO die Boote.id = 1
E, [2015-03-10T20:10:32.223430 #20343] ERROR -- : Mysql2::Error: Incorrect string value: '\xE2\x80\xA8\x09Te...' for column 'description' at row 1: UPDATE boats SET description = 'Vive la experiencia única de navegar abordo de un clásico de madera de lujo como Mako.
Te emocionará.', updated_at = '2015-03-10 20:10:32' WHERE boats.id = 1
HINWEIS: Sorry, ich bin nicht in der Lage, um den code oben als code. Es muss einen besonderen Charakter.
Ich möchte, dass der Benutzer hinzufügen können alle Zeichen ohne Fehler.
Ich habe eine Entwicklungs-und Produktionsumgebung. Der Fehler ist nur passiert in der Produktion.
Sah ich diesen Beitrag, der sieht das gleiche problem wie meins: Mysql2::Error: Incorrect string value
Ich diese Abfrage ausführen show variables like 'char%';
zur überprüfung der Datenbank-Charakter config und:
Entwicklung:
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'utf8'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'utf8'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/local/Cellar/mysql/5.6.19/share/mysql/charsets/'
Produktion:
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'
'character_sets_dir', '/usr/share/mysql/charsets/'
So, ich ausgeführt ALTER DATABASE yanpyprod CHARACTER SET utf8 COLLATE utf8_general_ci;
aktualisiere ich meine Datenbank-Zeichensatz auf utf8.
Jedoch nach der charecter set auf utf8 geändert, ich bekomme immer noch den gleichen Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es funktioniert, wenn Sie laufen
ALTER TABLE your_database_name.your_table CONVERT TO CHARACTER SET utf8
statt der Abfrage aktualisiert Zeichensatz in der Datenbank vor.Die Lösung ist die beigefügte post, ganz am Ende.
Es gibt zwei Möglichkeiten, dies zu überwinden
Optionen 1
Wie in der akzeptierten Antwort:
Option 2
Wenn Sie benötigen, um die Tabelle der Standard-Zeichensatz, dann Sie können ändern, das entsprechende Feld oder die Felder, die sind mit dem Problem mit.
Ich habe das gleiche Problem mit zwei Feldern in einer Tabelle und die Felder sind Inhalte speichern von rich-text-Feldern Werte. Diese Felder dienen der Eingabe HRML sowie einige Inhalte, die den Fehler verursacht.
Also wenn das Problem nur in einem Feld oder mehreren Feldern Sie können den Zeichensatz der betreffenden Feld folgender Art VERÄNDERN, die Abfrage kann verwendet werden, definieren Sie die Zeichen eines Feldes.
HINWEIS: Aktualisieren Sie die entsprechenden Namen und Werte gemäß Ihren Anforderungen, passend zu der Umgebung. Das einzige, was benötigt, um zu markieren, hier ist
CHARACTER SET utf8