2010-09-02 30 views
6

ho questo modulo:UTF-8 non funziona in HTML Forms

<form method="post" enctype="multipart/form-data" accept-charset="UTF-8"> 

Ma quando presento un carattere é, si trasforma in un ©.

Perché non funziona? Sì, il database MySQL ha tutti i set di caratteri impostati correttamente. (Database, tabelle.) Se lo inserisco manualmente nel database con Navicat, viene visualizzato correttamente nella pagina web.

Inoltre, ho provato il metatag, impostando l'intestazione del tipo di contenuto, senza successo.

+0

Come stai mettendo i dati del modulo nel database? Il tuo linguaggio lato server preserva UTF-8? – Oded

+0

Stai servendo la tua pagina come UTF-8 quando la rivedi all'utente? Verifica che i meta tag e le intestazioni corrispondano. – notJim

+0

Tutti i campi passano attraverso mysql_real_escape_string e vengono quindi inseriti nel database utilizzando questa query: mysql_query ("UPDATE' users' SET' Profile' = '". $ NewProfile."', 'Avatar' =' ". Mysql_real_escape_string ($ avatar). "'WHERE' ID' = ". $ thisUser [' ID ']); – Codecat

risposta

8

nel codice HTML, aggiungere il seguente tag meta:

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

aggiungere anche questa intestazione PHP in alto dello script:

header("Content-Type: text/html;charset=UTF-8"); 

[MODIFICA]:

Un altro consiglio è di salvare il file come codifica UTF-8 without BOM. È possibile utilizzare Notepad++ o qualsiasi editor decente per farlo.

+1

Hanno entrambi, non cambia nulla. – Codecat

+0

Hai l'intestazione 'in alto nella pagina HTML in cui si trova il modulo? – shamittomar

+0

Sì. * caratteri extra * – Codecat

1

Assicurarsi di aver impostato la vostra collazione connessione a utf8:

SET NAMES utf8 
+0

Già facendo questo. – Codecat

+0

Anche la pagina modulo è utf-8? Inoltre, hai provato un altro browser/macchina? – aularon

+0

Ho appena provato Internet Explorer, lo stesso problema. Anche altri utenti riscontrano questo problema. – Codecat