2012-02-29 16 views
6

Làm cách nào để tôi có thể đặt *.asp tệp (ASP cổ điển) trong một trang web trong IIS để có phản hồi Loại nội dung của tiêu đề được đặt thành text/html;charset=UTF-8? Ngay bây giờ, các tập tin được phục vụ như Content-Type=text/html.IIS 6 - ASP cổ điển - Đặt * .asp kiểu nội dung của tiêu đề phản hồi thành "text/html; charset = UTF-8"

Cách tiếp cận thay thế là thêm <% Response.Charset = "UTF-8" %> vào mọi trang, nhưng tôi tự hỏi có cách nào để làm điều đó trên toàn cầu hay không.

Cảm ơn! -K

Trả lời

3

Không có cách nào để chỉ định toàn cầu CharSet cho một ứng dụng.

Thực tế có nhiều điều hơn là chỉ yêu cầu khách hàng của nó nhận được UTF-8. Bạn cũng cần đảm bảo đối tượng phản hồi được cấu hình cho mã trang 65001. Điều này ít nhất có thể được thiết lập trên toàn cầu bằng cách sử dụng giá trị metabase AspCodePage ở cấp ứng dụng (hoặc trực tiếp trong tính năng ASP trong trình quản lý IIS7).

Tuy nhiên tùy chọn của tôi với loại điều này là để tránh tùy thuộc vào máy chủ được định cấu hình chính xác. Mỗi trang đặt bảng mã của nó (với chỉ thị @CODEPAGE hoặc với Response.Codepage) và CharSet của nó.

Tôi có hai lý do cho phương pháp này. Một là cuối cùng CharSet/Codepage là sự lựa chọn được thực hiện tại thời điểm tạo và lưu tệp. Khác là khi depolying/sao chép các trang web ít bạn phải nhớ để cấu hình tốt hơn.

+0

Đối với những người có thể đã đến đây tìm cách thiết lập 'CharSet' trên toàn cầu cho một ứng dụng ** ASP.NET **, điều này có thể xảy ra. Xem phần tử ['' trong Web.config] (http://msdn.microsoft.com/en-us/library/39d1w2xf.aspx). Ngoài ra, trong ASP.NET, 'CodePage' 65001 là mặc định. ('CodePage' chi phối cách mã nguồn ASP.NET được ** xử lý trên máy chủ **.' CharSet' điều chỉnh mã hóa ký tự nào (ví dụ UTF-8) được ** trả về cho máy khách **.) – DavidRR

5

EDIT 1: Ive được thử nghiệm này với các công cụ phát triển IE9 (tab mạng),

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

Kết quả trong một tiêu đề HTML cho Content-Type của:

text/html;charset=UTF-8 

Trong khi , thiết lập nó ở mức MIME trên IIS7 không - tôi sẽ cập nhật câu trả lời của tôi khi tôi tìm ra lý do tại sao.

CHỈNH SỬA 2: Tôi không thể tiếp cận MIME toàn cầu để làm việc trên giàn khoan thử nghiệm của mình - xin lỗi! Có những gợi ý về điều này trực tuyến: http://forums.iis.net/p/1166956/1941076.aspx#1941076

Tôi đoán bạn sẽ chỉ cần bật số response.ContentType = "text/html;charset=UTF-8" trong loại <!-- #include file="..\includes\common.asp" --> bao gồm (hoặc tương tự).

+0

vì vậy, tôi có nên sửa đổi mọi trang trong trang web của mình không? –

Các vấn đề liên quan