2012-02-29 10 views
6

Come è possibile impostare i file *.asp (ASP classico) in un sito Web in IIS per ottenere risposta Tipo di contenuto dell'intestazione impostato su text/html;charset=UTF-8? In questo momento, i file sono serviti come Content-Type=text/html.IIS 6 - ASP classico: impostare il tipo di contenuto dell'intestazione di risposta *asp su "text/html; charset = UTF-8"

Un approccio alternativo è quello di aggiungere <% Response.Charset = "UTF-8" %> a ogni singola pagina, ma mi chiedo se c'è un modo per farlo globalmente.

Grazie! -K

risposta

3

Non esiste un modo per specificare globalmente lo CharSet per un'applicazione.

In realtà c'è molto di più che dire al cliente di ottenere UTF-8. È inoltre necessario assicurarsi che l'oggetto risposta sia configurato per la codepage 65001. Questo almeno può essere impostato a livello globale utilizzando il valore della metabase AspCodePage a livello di applicazione (o direttamente nella funzionalità ASP in Gestione IIS7).

Tuttavia, la mia preferenza con questo tipo di cose è evitare di dipendere dal server per essere configurato correttamente. Ogni pagina imposta la sua tabella codici (con la direttiva @CODEPAGE o con Response.Codepage) e il suo CharSet.

Ho due ragioni per questo approccio. Uno è che alla fine il CharSet/Codepage è una scelta fatta al momento della creazione e del salvataggio del file. L'altro è che quando si esegue la depilazione/copia del sito meno è necessario ricordarsi di configurare il migliore.

+0

Per coloro che potrebbero essere arrivati ​​qui cercando di impostare 'CharSet' globalmente per un'applicazione ** ASP.NET **, questo *** è possibile. Vedere l'elemento ['' in Web.config] (http://msdn.microsoft.com/en-us/library/39d1w2xf.aspx). Inoltre, in ASP.NET, 'CodePage' 65001 è l'impostazione predefinita. ('CodePage' governa il modo in cui il codice sorgente ASP.NET è ** elaborato sul server **.' CharSet' governa quale codifica dei caratteri (ad es. UTF-8) è ** restituita al client **.) – DavidRR

5

EDIT 1: Ive ha testato questo con gli strumenti di sviluppo di IE9 (scheda di rete),

<% 
response.ContentType = "text/html;charset=UTF-8" 
%> 

Risultati in un'intestazione HTML per Content-Type di:

text/html;charset=UTF-8 

Mentre , impostandolo a livello MIME su IIS7 non - aggiornerò la mia risposta quando capirò perché.

EDIT 2: non posso ottenere l'approccio globale MIME a lavorare sul mio banco di prova - mi dispiace! Ci sono accenni di questa linea: http://forums.iis.net/p/1166956/1941076.aspx#1941076

Sto indovinando dovrete semplicemente per estrarre la response.ContentType = "text/html;charset=UTF-8" in un tipo <!-- #include file="..\includes\common.asp" --> includere (o simile).

+0

quindi dovrei modificare ogni pagina del mio sito? –