Ho un'applicazione di rotaia. A volte, quando un utente scrive in un campo di testo e viene eseguita una query per aggiornare questo campo nel database MySQL, ottengo questo log degli errori:Mysql2 :: Errore: valore di stringa errato: ' xE2 x80 xA8 x09
UPDATE barche SET descrizione = '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' DOVE boats.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
. NOTA: Siamo spiacenti, io non sono in grado di mettere il codice di cui sopra come codice. Ci deve essere un personaggio speciale.
Vorrei che l'utente potesse aggiungere qualsiasi carattere senza errori.
Ho un ambiente di sviluppo e produzione. L'errore sta accadendo solo in produzione.
Ho visto questo post che sembra lo stesso problema come il mio: Mysql2::Error: Incorrect string value
ho funzionare questa domanda show variables like 'char%';
per controllare la configurazione di caratteri del database e: Sviluppo:
'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/'
Produzione:
'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/'
Così, ho eseguito ALTER DATABASE yanpyprod CHARACTER SET utf8 COLLATE utf8_general_ci;
per aggiornare il mio set di caratteri del database su utf8.
Tuttavia, dopo che il set di caratteri è cambiato in utf8, ho ancora lo stesso errore.
Grazie, ha funzionato come un fascino. – iFadi
Salvato il mio culo, grazie – Oussaki