2012-02-29 16 views
6

Jak mogę ustawić pliki *.asp (Classic ASP) w witrynie sieci Web pod IIS, aby uzyskać odpowiedź Typ nagłówka nagłówka ustawiony na text/html;charset=UTF-8? W tej chwili pliki są wyświetlane jako Content-Type=text/html.IIS 6 - Klasyczna ASP - Ustaw typ nagłówka odpowiedzi nagłówka odpowiedzi na "text/html; charset = UTF-8"

Alternatywnym podejściem jest dodanie <% Response.Charset = "UTF-8" %> do każdej strony, ale zastanawiam się, czy istnieje sposób, aby to zrobić globalnie.

Dzięki! -K

Odpowiedz

3

Nie ma sposobu, aby globalnie określić CharSet dla aplikacji.

Jest w tym coś więcej niż tylko informowanie klienta o tym, jak uzyskać UTF-8. Musisz również upewnić się, że obiekt odpowiedzi jest skonfigurowany do strony kodowej 65001. Można to przynajmniej ustawić globalnie, używając wartości metabazy AspCodePage na poziomie aplikacji (lub bezpośrednio w funkcji ASP w menedżerze IIS7).

Jednak moje preferencje dotyczące tego rodzaju rzeczy należy unikać w zależności od serwera, który ma być skonfigurowany poprawnie. Każda strona ustawia stronę kodową (z dyrektywą @CODEPAGE lub z Response.Codepage) i jej CharSet.

Mam dwa powody takiego podejścia. Jedną z nich jest to, że docelowo wybrano stronę CharSet/Codec w momencie tworzenia i zapisywania pliku. Drugi polega na tym, że deponując/kopiując stronę, mniej musisz pamiętać, aby skonfigurować lepiej.

+0

Dla tych, którzy mogli przybyć tutaj, aby ustawić globalne "CharSet" dla aplikacji ** ASP.NET **, to *** jest *** możliwe. Zobacz element ['" w Web.config] (http://msdn.microsoft.com/en-us/library/39d1w2xf.aspx). Ponadto w ASP.NET domyślnie jest "CodePage" 65001. ('CodePage' reguluje sposób przetwarzania kodu źródłowego ASP.NET ** na serwerze **.' CharSet' zarządza tym, jakie kodowanie znaków (np. UTF-8) jest ** zwracane do klienta **.) – DavidRR

5

EDIT 1: Ive przetestowane z narzędzi programistycznych IE9 jest (Zakładka Network),

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

wyników w nagłówku HTML Content-Type:

text/html;charset=UTF-8 

co następuje: , ustawienie go na poziomie MIME w IIS7 nie - zaktualizuję moją odpowiedź, gdy znajdę dlaczego.

EDIT 2: Nie mogę zastosować globalnego podejścia MIME do pracy na moim urządzeniu testowym - przepraszam! Istnieją wzmianki o tym ONLINE: http://forums.iis.net/p/1166956/1941076.aspx#1941076

Zgaduję, musisz po prostu pop response.ContentType = "text/html;charset=UTF-8" w rodzaju <!-- #include file="..\includes\common.asp" --> obejmują (lub podobny).

+0

tak czy powinienem zmienić każdą stronę w mojej witrynie? –

Powiązane problemy