vs

Per definire il set di caratteri per Doctype HTML5 , quale notazione dovrei usare?

  1. Corto:

     
  2. Lungo:

      

In HTML5, sono equivalenti. Usa quello più corto, è più facile da ricordare e digitare. Il supporto del browser va bene poiché è stato progettato per la compatibilità all’indietro.

Entrambe le forms della dichiarazione meta charset sono equivalenti e dovrebbero funzionare allo stesso modo attraverso i browser. Ma ci sono alcune cose che devi ricordare quando dichiari i tuoi file web impostati come UTF-8:

  1. Salva i tuoi file nella codifica UTF-8 senza il byte-order mark (BOM).
  2. Dichiara la codifica nei tuoi file HTML usando meta set (come sopra).
  3. Il tuo server web deve servire i tuoi file, dichiarando la codifica UTF-8 nell’intestazione HTTP Content-Type.

I server Apache sono configurati per servire i file in ISO-8859-1 per impostazione predefinita, quindi è necessario aggiungere la seguente riga al file .htaccess :

 AddDefaultCharset UTF-8 

Questo configurerà Apache per servire i tuoi file dichiarando la codifica UTF-8 nell’intestazione di risposta Content-Type, ma i tuoi file devono essere salvati in UTF-8 (senza BOM) per cominciare.

Blocco note non può salvare i tuoi file in UTF-8 senza il BOM. Un editor gratuito che può essere Notepad ++ . Sulla barra dei menu del programma, selezionare “Codifica> Codifica in UTF-8 senza BOM”. Puoi anche aprire i file e salvarli nuovamente in UTF-8 usando “Codifica> Converti in UTF-8 senza BOM”.

Maggiori informazioni sul Byte Order Mark (BOM) su Wikipedia .

Un altro motivo per andare con quello corto è che corrisponde ad altre istanze in cui è ansible specificare un set di caratteri nel markup. Per esempio:

  

Example Site

La coerenza aiuta a ridurre gli errori e rende il codice più leggibile.

Si noti che l’attributo charset non fa distinzione tra maiuscole e minuscole. È ansible utilizzare UTF-8 o utf-8, tuttavia UTF-8 è più chiaro, più leggibile, più accurato.

Inoltre, non vi è assolutamente alcuna ragione per utilizzare qualsiasi valore diverso da UTF-8 nell’attributo meta set o nell’intestazione della pagina. UTF-8 è la codifica predefinita per i documenti Web da HTML4 nel 1999 e l’unico modo pratico per creare pagine Web moderne.

Inoltre, non utilizzare le entity framework HTML in UTF-8. Personaggi come il simbolo del copyright dovrebbero essere digitati direttamente. Le sole quadro che dovresti usare sono per i 5 caratteri di markup riservati: minore di, maggiore di, e commerciale, primo, doppio primo. Le entity framework necessitano di un parser HTML, che potresti non voler utilizzare sempre in futuro, introducono errori, rendono il tuo codice meno leggibile, aumentano le dimensioni del file e talvolta decodificano in modo errato in vari browser a seconda di quali entity framework hai utilizzato. Impara come inserire / inserire copyright, marchio, apri preventivo, close quote, apostrofo, trattino, trattino, punto elenco, Euro e qualsiasi altro personaggio che incontri nel tuo contenuto e usa quei personaggi nel tuo codice. Il Mac ha un visualizzatore di caratteri che puoi triggersre con le preferenze di sistema della tastiera, e puoi trovare e trascinare i caratteri necessari, oppure utilizzare il visualizzatore tastiera corrispondente per vedere quali tasti digitare. Ad esempio, trademark è Option + 2. UTF-8 contiene tutti i caratteri e simboli di ogni lingua umana scritta. Quindi non ci sono scuse per usare – invece di un trattino. Non è una ctriggers idea imparare anche le regole della punteggiatura e della tipografia … per esempio, sapendo che un periodo va dentro una citazione vicina, non all’esterno.

Usare un tag per qualcosa come il tipo di contenuto e la codifica è estremamente ironico, poiché senza sapere quelle cose, non è ansible analizzare il file per ottenere il valore del metatag.

No, questo non è vero. Il browser inizia analizzando il file come codifica predefinita del browser, UTF-8 o ISO-8859-1. Poiché US-ASCII è un sottoinsieme di ISO-8859-1 e UTF-8, il browser può leggere bene in entrambi i modi … è lo stesso. Quando il browser rileva il tag meta charset, se la codifica è diversa da quella utilizzata dal browser, il browser ricarica la pagina nella codifica specificata. Questo è il motivo per cui abbiamo messo il tag meta charset in alto, subito dopo il tag head, prima di ogni altra cosa, persino il titolo. In questo modo puoi usare i caratteri UTF-8 nel titolo.

È necessario salvare i file nella codifica UTF-8 senza BOM

Questo non è assolutamente vero. Se nel documento sono presenti solo caratteri US-ASCII, è ansible salvarlo come US-ASCII e servirlo come UTF-8, poiché si tratta di un sottoinsieme. Ma se ci sono caratteri Unicode, sei corretto, devi salvare come UTF-8 senza BOM.

Se vuoi un buon editor di testo che salverà i tuoi file in UTF-8, ti consiglio Notepad ++.

Su Mac, usa Bare Bones TextWrangler (gratuito) da Mac App Store, o Bare Bones BBEdit che si trova su Mac App Store a $ 39,99 … molto economico per un così grande strumento. In entrambe le app, c’è un menu nella parte inferiore della finestra del documento in cui si specifica la codifica del documento e si può facilmente scegliere “UTF-8 no BOM”. E ovviamente puoi impostarlo come predefinito per i nuovi documenti in Preferenze.

Ma se il tuo server Web serve la codifica nell’intestazione HTTP, che è raccomandata, entrambi i [meta tag] sono inutili.

Non è corretto Ovviamente dovresti impostare la codifica nell’intestazione HTTP, ma dovresti anche impostarla nell’attributo meta charset in modo che la pagina possa essere salvata dall’utente, dal browser all’archivio locale e quindi riaperta in un secondo momento, nel qual caso l’unica indicazione della codifica che sarà presente è l’attributo meta charset. Dovresti anche impostare un tag base per lo stesso motivo … sul server, il tag base non è necessario, ma quando viene aperto dalla memoria locale, il tag base consente alla pagina di funzionare come se fosse sul server, con tutte le attività in atto e così via, senza collegamenti interrotti.

AddDefaultCharset UTF-8

O puoi semplicemente cambiare la codifica di particolari tipi di file in questo modo:

 AddType text/html;charset=utf-8 html 

Un consiglio per servire sia i file UTF-8 che Latin-1 (ISO-8859-1) è di dare ai file UTF-8 un’estensione “di testo” e file Latin-1 “txt”.

 AddType text/plain;charset=iso-8859-1 txt AddType text/plain;charset=utf-8 text 

Infine, considera la possibilità di salvare i tuoi documenti con terminazioni di linea Unix, non legacy DOS o (classiche) terminazioni di linea Mac, che non aiutano e possono danneggiare, soprattutto in linea mentre ci allontaniamo sempre più dai sistemi legacy. Un documento HTML con HTML5, codifica UTF-8 valida e terminazioni di linea Unix è un lavoro ben fatto. È ansible condividere e modificare e archiviare, leggere e recuperare e fare affidamento su quel documento in molti contesti. È lingua franca. È una carta digitale.

stato introdotto con / per HTML5.

Come menzionato nella documentazione, entrambi sono validi. Tuttavia, è solo per HTML5 (e più facile da scrivere / ricordare).

A tempo debito, il vecchio stile è destinato a diventare deprecato nel prossimo futuro. Mi attengo al nuovo .

C’è solo un modo, ma su. Nel caso della tech, questo sta eliminando il vecchio (davvero, DAVVERO veloce)

Documentazione: HTML meta charset Attribute-W3Schools

Pur non contestando le altre risposte, penso che quanto segue sia degno di menzione.

  1. La notazione “long” ( http-equiv ) e “short” sono uguali, a seconda di quale viene la prima vittoria;
  2. Le intestazioni del server Web sovrascriveranno tutti i tag ;
  3. BOM (Byte order mark) sovrascriverà tutto , e in molti casi avrà effetto su html 4 (e probabilmente anche su altre cose);
  4. Se non si dichiara alcuna codifica, probabilmente si otterrà il testo in “codifica testo di fallback” definito dal browser. Né in Firefox né in Chrome è utf-8;
  5. In assenza di altri indizi, il browser tenterà di leggere il documento come se fosse in ASCII per ottenere la codifica, quindi non è ansible utilizzare alcuna codifica strana (utf-16 con BOM dovrebbe fare, però);
  6. Mentre le specifiche dicono che la dichiarazione di codifica deve essere compresa tra i primi 512 byte del documento, la maggior parte dei browser proverà a leggere di più.

È ansible eseguire il test eseguendo echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf< !DOCTYPE html>приветпривет' | nc -lp 4500 echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf< !DOCTYPE html>приветпривет' | nc -lp 4500 echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf< !DOCTYPE html>приветпривет' | nc -lp 4500 e puntando il browser su localhost:4500 . (Ovviamente vorrete cambiare o rimuovere parti. La parte BOM è \xef\xbb\xbf . Diffidate della codifica della vostra shell.)

Per favore, è molto importante che tu dichiari esplicitamente la codifica. Lasciare indovinare i browser può portare a problemi di sicurezza.

Usa per i browser web quando usi HTML5.

Usa quando usi HTML4 o XHTML o per dom pars obsoleti, come DOMDocument in php

Ci sono alcune notizie basate su Mozilla Foundation e sitepoint

Non utilizzare questo valore ( http-equiv=content-type ) poiché è obsoleto. Preferisci l’attributo charset sull’elemento < meta >. inserisci la descrizione dell'immagine qui