Codifica caratteri SQL/PHP

Salve ragazzi. Ho creato una tabella, con due campi:

1) id

2) template

il campo numero 2 è un campo di tipo longtext, e dentro c'è una porzione di codice HTML. Lo richiamo in una pagina PHP e i caratteri speciali ( à,é etc.) si vedono romboidali con un punto di domanda. So bene che riguarda la codifica, ma sia che metto 

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

Sia che metto la codifica uft8_general_ci nel campo template, il problema non si risolve. Come posso fare? 

La pagina sarebbe questa: http://habbocmsolutions.altervista.org/

inviato 4 anni fa
Clear
Clear
21
modificato 4 anni fa
X 0 X

La stessa codifica dei caratteri deve essere impostata:

  • sulla colonna della tabella del database, sia direttamente che indirettamente attraverso la codifica di default della tabella o del database di appartenenza
  • sulla connessione tra PHP e MySQL, in modo tale che i due parlino la stessa lingua durante il trasferimento dei dati. Questa impostazione può avvenire attraverso file di configurazione di MySQL o lanciando delle opportune query (es.: SET NAMES 'utf8';) appena dopo essersi connessi a MySQL
  • con un header HTTP nell'invio della pagina HTML al browser (es.: Content-Type: text/html; charset=utf-8)
  • nella pagina HTML (es.: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />)

Dopo aver verificato tutte queste cose ti consiglio di inserire dei dati nel database utilizzando un applicativo "collaudato", ad esempio phpMyAdmin, in modo da esser certi che il problema non si sia verificato all'atto dell'inserimento dei dati. Fatto ciò potrai verificare la correttezza di tutti i passaggi dal DB al browser.

risposto 4 anni fa
Gianni Tomasicchio
Grazie mille, ho risolto. Ingenuamente ho cambiato la codifica della singola colonna, ora invece l'ho cambiata per le colonne, le tabelle e il database. Inoltre con il codice (dopo aver apportato le codifiche giuste all'intero database): &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; Non funziona, ma con questo si: &lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&gt;Clear 4 anni fa
X 0 X X

Non riesco ad aprire la pagina da te indicata.

Io comunque utilizzo delle lettere accentate nelle mie pagine e per visualizzarle utilizzo questo:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

La codifica del file è pero ANSI (se utilizzi Notepad++ quest'informazione la troverai in basso a destra).

Assicurati di avere la giusta codifica anche nella tabella, in modo da non avere comportamenti strani con determinati caratteri (io utilizzo di solito la latin1_swedish_ci).

risposto 4 anni fa
zeropingas
modificato 4 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda