Ваш код правильный, хотя я предпочитаю, чтобы установить НабораСимволов в коде, а не использовать мета-тег: -
<% Response.CharSet = "UTF-8" %>
Кодовая страница 65001 действительно относится к набору символов UTF-8. Вам нужно будет убедиться, что ваша страница asp (и все включено) сохраняется как UTF-8, если они содержат любые символы вне стандартного набора символов ASCII.
Указывая атрибут CODEPAGE в блоке <% @, вы указываете, что что-либо, написанное с использованием Response.Write, должно быть закодировано в указанную Codepage, в данном случае 65001 (utf-8). Стоит иметь в виду, что это не влияет на какое-либо статическое содержимое, которое отправляется дословно для байта для ответа. Следовательно, причина, по которой файл должен быть фактически сохранен, используя указанную кодовую страницу.
Свойство CharSet ответа задает значение CharSet заголовка Content-Type. Это не влияет на то, как кодировать контент, который он кодирует, он просто сообщает клиенту, какая кодировка будет получена. Опять же важно, чтобы его значение соответствовало фактической кодировке.
Каким способом является «наследство» кодекса? – AnthonyWJones
Исторически тексты имели * кодовую страницу *, которая просто указывала, какой набор символов использовать. У них было некоторое число, которое отличалось от поставщика к поставщику, для этой цели Windows, похоже, использует 16-разрядное целое без знака. В настоящее время большинство кодировок и наборов символов имеют * имена * вместо * numbers *. Я считаю, что UTF-8 имеет номер кодовой страницы (который нигде не указан и не используется вне Microsoft), чтобы убедиться, что он все еще работает со старой 16-разрядной целочисленной кодовой страницей. Несмотря на то, что UTF-8 ничем не отличается от кодовой страницы. – Joey
@ Johannes: номер кодовой страницы по-прежнему является важной особенностью того, как Windows обрабатывает кодировку символов. Например, в .NET класс Encoding может быть установлен только с использованием номера кодовой страницы. Я не думаю, что Codepage еще является «наследием». – AnthonyWJones