Quali passi posso fare per evitare problemi di codifica dei caratteri in un'applicazione web?

4

Nelle precedenti applicazioni Web che ho creato, ho riscontrato problemi con gli utenti che inserivano caratteri esotici in moduli che vengono memorizzati in modo strano nel database e talvolta appaiono diversi o con doppia codifica quando vengono recuperati dal database e visualizzati di nuovo nel browser. Sto iniziando un nuovo progetto ora e voglio prevenire questi problemi fin dall'inizio.

Quello che sto cercando è una lista di cose che posso fare per evitare problemi di codifica dei caratteri come questi, indipendentemente da ciò che gli utenti inseriscono nei moduli. Se imposto le mie tabelle di database su UTF-8 e imposto tutte le mie pagine Web per presupporre che il contenuto sia UTF-8, è sufficiente? Alcuni caratteri appaiono ancora in modo diverso rispetto a quando l'utente li ha immessi? Devo fare qualche convalida sul lato client che non consenta agli utenti di inserire determinati caratteri?

    
posta CFL_Jeff 18.04.2012 - 16:28
fonte

2 risposte

4

If I set my database tables to UTF-8, and set all of my web pages to assume content is UTF-8, is this enough?

È necessario assicurarsi che la connessione tra l'applicazione web e il database non manipoli la codifica (credo che sia necessario impostarla esplicitamente sulla stringa di connessione per MySQL, per esempio).

Fondamentalmente è necessario assicurarsi che ogni fase della catena stia utilizzando la stessa codifica.

    
risposta data 18.04.2012 - 16:33
fonte
2

Devi assicurarti di specificare il tipo di dati corretto anche per le colonne, nchar / nvarchar / ntext sono necessari per contenere i valori unicode, char / varchar / text conserverà solo i valori ASCII. Inoltre, in base alla modalità di trasferimento dei dati, potrebbe essere necessario sfuggire a determinati caratteri per evitare risultati imprevisti, gli elenchi di questi caratteri possono essere trovati facilmente tramite le ricerche di Google.

    
risposta data 18.04.2012 - 16:45
fonte

Leggi altre domande sui tag