IIS 6 - Classic ASP - قم بتعيين نوع محتوى رأس استجابة *.asp على "text/html;charset=UTF-8"

StackOverflow https://stackoverflow.com/questions/9502490

سؤال

كيف يمكنني تعيين *.asp الملفات (ASP الكلاسيكية) في موقع ويب ضمن IIS لتعيين نوع محتوى رأس الاستجابة على text/html;charset=UTF-8؟في الوقت الحالي، يتم تقديم الملفات كـ Content-Type=text/html.

النهج البديل هو إضافة <% Response.Charset = "UTF-8" %> في كل صفحة، ولكني أتساءل عما إذا كانت هناك طريقة للقيام بذلك عالميًا.

شكرًا!-ك

هل كانت مفيدة؟

المحلول

لا توجد وسيلة لتحديد عالميًا CharSet لتطبيق.

هناك في الواقع ما هو أكثر من مجرد إخبار العميل بأنه حصل على UTF-8.تحتاج أيضًا إلى التأكد من تكوين كائن الاستجابة لصفحة الرموز 65001.يمكن تعيين هذا على الأقل عالميًا باستخدام AspCodePage قيمة قاعدة التعريف على مستوى التطبيق (أو مباشرة في ميزة ASP في مدير IIS7).

ومع ذلك فإن ما أفضّله في هذا النوع من الأشياء هو تجنب الاعتماد على الخادم الذي سيتم تكوينه بشكل صحيح.تقوم كل صفحة بتعيين مخطط الشفرة الخاص بها (إما باستخدام ملحق @CODEPAGE التوجيه أو مع Response.Codepage) ولها CharSet.

لدي سببين لهذا النهج.أحدهما هو أن CharSet/Codepage هو في النهاية اختيار تم إجراؤه في وقت إنشاء الملف وحفظه.والآخر هو أنه عند إلغاء/نسخ الموقع، كلما قل ما تتذكره لتكوينه بشكل أفضل.

نصائح أخرى

تحرير 1:لقد اختبرت ذلك باستخدام أدوات مطور IE9 (علامة تبويب الشبكة)،

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

النتائج في رأس HTML لنوع المحتوى:

text/html;charset=UTF-8

في حين أن تعيينه على مستوى MIME على IIS7 لا يحدث ذلك - سأقوم بتحديث إجابتي عندما أعرف السبب.

تحرير 2:لا أستطيع الحصول على نهج MIME العالمي للعمل على جهاز الاختبار الخاص بي - آسف!هناك تلميحات لذلك عبر الإنترنت: http://forums.iis.net/p/1166956/1941076.aspx#1941076

أعتقد أنه سيتعين عليك فقط أن تفرقع response.ContentType = "text/html;charset=UTF-8" في <!-- #include file="..\includes\common.asp" --> النوع يشمل (أو ما شابه).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top