2012-03-21 13 views
14

Recentemente ho notato un sacco di siti di alto profilo utilizzando caratteri direttamente nella loro fonte, ad esempio:HTML5: che è meglio - usare un'entità di carattere o usare direttamente un carattere?

<q>“Hi there”</q> 

Piuttosto che:

<q>&ldquo;Hi there&rdquo;</q> 

Quale di queste è preferito? Ho sempre usato entità in passato, ma l'uso diretto del personaggio sembra più leggibile e sembrerebbe essere corretto in un documento Unicode.

+1

ovviamente utilizzando i caratteri direttamente potrebbe rovinarlo in un documento non Unicode, ma sì, se in UTF-8 dovrebbe funzionare correttamente. +1, bella domanda; chiedendomi –

+1

Che cos'è questo "documento non Unicode" di cui parli? :) (Più seriamente, questo è il 2012, dovremmo aver rinunciato alla ISO-8859 e sono amici proprietari di un decennio fa). – Quentin

+1

Le specifiche HTML5 per charset dicono anche 'Gli autori sono incoraggiati ad usare Unicode' http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset – mikemaccana

risposta

6

Se la codifica è UTF-8, i caratteri normali funzioneranno correttamente e non vi è alcun motivo per non utilizzarli. I browser che non supportano UTF-8 avranno molti altri problemi durante la visualizzazione di una pagina Web moderna, quindi non preoccuparti di ciò.

Quindi è più facile e più leggibile utilizzare i caratteri e preferirei farlo.

Salva anche un paio di byte che è buono, anche se c'è molto di più da guadagnare usando la compressione e la minimizzazione.

+2

l'altro vantaggio è che se si usa i caratteri reali per impostazione predefinita, quindi i contenuti inviati dagli utenti sembreranno giusti anche se non sono codificati - ad esempio, sul mio blog ho un'opzione da leggere in chiaro, che non funzionerebbe correttamente se usassi le entità html. –

1

Utilizzo diretto dei caratteri. Sono più facili da leggere nella fonte (che è importante in quanto le persone devono modificarli!) E richiedono meno larghezza di banda.

2

Il vantaggio principale che posso vedere con i caratteri di codifica è che avranno un aspetto corretto, anche se la pagina viene interpretata come ASCII.

Ad esempio, se la pagina è solo un file HTML non elaborato, le impostazioni predefinite su alcuni server potrebbero essere utilizzate come text/html; charset=ISO-8859-1 (default in HTTP 1.1). Anche se si imposta il meta tag per tipo di contenuto, l'intestazione HTTP ha una priorità più alta.

Se questo è importante dipende dalla probabilità che la pagina venga servita da un server configurato in modo errato.

1

L'esempio dato è sicuramente sbagliato, in teoria e in pratica, in HTML5 e in HTML 4. Ad esempio, il HTML5 discussions of q markup dice: “Citazione punteggiatura (come ad esempio le virgolette) che sta citando il contenuto della l'elemento non deve apparire immediatamente prima, dopo o all'interno di q elementi; verranno inseriti nel rendering dall'agente utente. "

Cioè, utilizzare il markup "q" oi segni di punteggiatura, non entrambi. Quest'ultimo è migliore su tutti i conti pratici.

Per quanto riguarda il problema dei caratteri rispetto ai riferimenti di entità, i primi sono preferibili per la leggibilità, ma è necessario sapere come salvare i dati come UTF-8 e declare the encoding correttamente. Non è scienza missilistica, e di solito migliore. Ma se il tuo ambiente di authoring è UTF-8 ostile, non devi vergognarti di usare i riferimenti alle entità.

+1

In realtà aggiungo le virgolette tramite CSS - Volevo solo un esempio più piccolo per StackOverflow. PS: sarebbe meglio come commento, poiché non fa parte della tua risposta. – mikemaccana

Problemi correlati