2012-03-06 11 views
14

Sto lavorando con un gran numero di file HTML che sono per lo più codificati come utf-8. Ci sono caratteri accentati in abbondanza come molti sono in francese. Li ho convertiti in entità HTML mentre andavo, ma ho notato che anche in IE5.5 (secondo il tester IE) i caratteri accentati non convertiti vengono visualizzati correttamente.Tutti i caratteri accentati dovrebbero utilizzare entità html?

Dovrei preoccuparmi della visualizzazione dei caratteri e convertirli tutti in entità HTML solo per essere sicuri?

risposta

17

Se i file sono codifica UTF-8, si dovrebbe impostare l'intestazione Content-Type essere text/html; charset=UTF-8 e hanno un meta tag equivalente sulla pagina:

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

Questo dà al navigatore tutte le informazioni per la visualizzazione UTF- 8 caratteri correttamente. Non è necessario codificare i caratteri accentati.

+0

Set di caratteri errato lì. – tchrist

+0

@tchrist - Grazie. – Oded

+0

Ho sempre pensato che questo meta tag da solo fosse abbastanza inutile. Affinché il browser possa leggere il tag, deve conoscere o indovinare il set di caratteri con altri mezzi e almeno ottenere "abbastanza vicino". –

2

La cosa che dovete ricordare è francese è parte della famiglia UTF-8 insieme a portoghese, spagnolo, ecc, in modo che visualizzerà correttamente con un tag UTF-8 in atto e fornire il browser è anche utilizzando UTF- 8 per la pagina.

Il problema è quando una persona che utilizza un browser che sta forzando un altro set di caratteri arriva alla pagina, questo interromperà i caratteri non codificati. Questo accade un po 'qui in Brasile, dove molti browser non sono impostati per il rilevamento automatico del set di caratteri e sono impostati su ISO-8859-1 che è comune qui.

Quindi, se possibile, codificare tutti i caratteri "speciali" per l'accesso più universale possibile.

Spero che questo aiuti!

+0

Sai quali situazioni portano a un browser che impone un altro set di caratteri? – Damon

+1

Ci sono 2 fattori, il primo e più comune è che alcuni browser in alcune lingue non usano UTF-8 come impostazione predefinita in quanto non sono lingue UTF-8 o UTF-8 non è comune come un altro set di caratteri in quelli paesi, il secondo è la preferenza dell'utente, ad es un sito aveva bisogno che il set di caratteri fosse cambiato e l'utente si dimenticasse di cambiarlo. – Ryan

4

Generalmente non è necessario utilizzare entità per caratteri come lettere accentate. Usarli è valido ma tende a offuscare il codice sorgente e può quindi causare errori.

Tuttavia, in alcuni casi sono necessarie le entità. Le ragioni non sono legate ai browser ma al lato autore. In particolare, se è necessario modificare i file utilizzando un editor o un programma di authoring che non gestisce bene le lettere accentate, è possibile trovare le entità utili. Lo stesso vale se i dati devono passare attraverso alcuni software che hanno problemi simili. E in alcuni casi, è necessario lavorare in un ambiente in cui non si ha il controllo sulle intestazioni HTTP e le intestazioni specificano una codifica che non consente di inserire tutti i caratteri direttamente.

Problemi correlati