2012-09-12 19 views
9

Sto cercando di inserire un ♥ in una tabella MySQL con PHP. Viene da un campo di input.Impossibile inserire il carattere ♥ nella tabella MySQL

Il set di caratteri della tabella è utf8_general_ci, e in PHP utilizzo mysql_query("SET NAMES 'utf8'"); subito dopo la connessione.

Ma il ♥ diventa semplicemente un '?' quando inserito.

Ho anche cercato di inserire nella tabella ♥ da phpMyAdmin, ma restituisce questo errore: '?'

Warning: #1366 Incorrect string value: '\xE2\x99\xA5' for column 'subject' at row 1 

Il risultato è anche invece di ♥.

Qualche idea su cosa causa questo?

+5

Provare a seguire [Gestione di Unicode Front To Back in una Web App] (http://kunststube.net/frontback/) – deceze

+0

provare http://stackoverflow.com/questions/7781103/sql-server-set- character-set-not-collation – Sathish

risposta

23

Questo a causa di incompatibile character set and collation definito nella colonna della tabella.

Prova changing character set della tabella o della colonna su UTF8.

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8; 

o

ALTER TABLE table_name MODIFY col VARCHAR(255) CHARACTER SET utf8; 
+0

Ohh! Ho appena cambiato il set di caratteri del tavolo, non le colonne ... Modificato le colonne in utf8, e ora tutto funziona! Grazie! – Elias

+0

Prego! :) – Omesh

0

provare questo:

ini_set('default_charset', 'utf-8'); 

nel file php e impostare il:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

e chek in voi banca dati per collazione a utf8_general_ci

+0

default_charset e meta-tag non funzionerebbero, come sto vedendo il '?' in phpMyAdmin. – Elias

+0

piuttosto che provare a impostare la codifica dei caratteri tramite ini_set() –

Problemi correlati