2012-02-23 17 views
9

Posso declinare alcune informazioni, come la codifica e il linguaggio, in meta-tag o in header-response.
La mia domanda: qual è il modo migliore (forse entrambi), per SEO e vecchi-browser?header di risposta VS meta tag

meta-tag esempio: < meta http-equiv = "Content-Type" content = "text/html; charset = utf-8" >
esempio (PHP) un colpo di testa: intestazione ('Content Digita: text/html; charset = utf-8 ');
cosa c'è di meglio?

risposta

11

Meta http-equiv è poco più di uno scherzo. Quando si specifica Content-Type con esso, solo la sezione charset conta per qualsiasi cosa e solo quando le intestazioni HTTP reali non riescono a specificare la codifica.

+0

per impostazione predefinita l'intestazione Content-Type è "text/html". e browser (almeno firefox) non lo legge come utf-8. Ma se http-equiv Content-Type specificato, funziona correttamente. –

+1

@ Dani-Br - Quindi, per impostazione predefinita, PHP non riesce a specificare la codifica nelle intestazioni HTTP e il comportamento è quello che ho detto. – Quentin

+0

@Quentin Se si utilizza PHP, è sempre possibile aggiungere la propria intestazione. In che modo PHP dovrebbe conoscere il set di caratteri del contenuto che stai generando? – sstn

14

Fare entrambe le cose. L'intestazione ha la precedenza, ma se si accede alla pagina HTML localmente, non ci sono intestazioni HTTP, quindi si desidera avere <meta charset="..."> come meccanismo di sicurezza.

+0

Quando si accede alla pagina localmente (quando la pagina è stata salvata sul PC dell'utente), lo fa tramite la codifica del file e il browser sa come salvare il file per meta/intestazione. Quindi, la mia domanda riguarda solo il lato server. –

+7

@ Dani-Br Questo non ha senso. Determinare "la codifica del file" è esattamente ciò che il meta tag è per. I sistemi operativi e i file system non memorizzano magicamente una codifica associata con ogni file di testo. –