Практическое руководство. Выбор кодировки для глобализации веб-страницы ASP.NET
Обновлен: Ноябрь 2007
Веб-страницы ASP.NET с выделенным кодом во внутреннем представлении обрабатывает все строковые данные как строки Юникода. Можно задать кодировку ответа страницы, который устанавливает атрибут CharSet в части Content-Type HTTP-заголовка. Таким образом, обозреватели могут определить кодировку без мета-тега и без выведения правильной кодировки из содержимого. Можно также установить, как страница интерпретирует сведения, которые отправляются в запросе.
Наконец, можно задать, как ASP.NET интерпретирует содержимое самой страницы, другими словами — кодировку физического ASPX-файла на диске. Если задана кодировка файлов, все страницы ASP должны использовать эту кодировку. Notepad.exe может сохранять файлы, которые кодируются в текущей системной кодовой странице ANSI, в UTF-8 или в UTF-16 (также называемых Юникодом). Во время выполнения ASP.NET может различать эти три кодировки. Кодировка физического файла ASP.NET должна соответствовать кодировке, указанной в файле в атрибутах кодировки @ Page.
Примечание. |
---|
Некоторые конструкторы, например Visual Studio 2005, могут сохранить ASPX-файлы, использующие различные кодировки. |
Внимание! |
---|
Имя веб-приложения может отображаться на компьютере пользователя неправильно, если оно использует набор двухбайтовых символов (DBCS), который не является языком операционной системы пользователя. В предыдущих версиях серверных расширений Microsoft FrontPage, а также на Microsoft IIS версии 5.1 и более ранних, имя проекта также должно соответствовать языку операционной системы для веб-сервера, чтобы отображаться корректно. |
Задание кодировки
Чтобы установить кодировку для всех страниц, добавьте свойство Globalization в файл Web.config и установите его атрибуты fileEncoding, requestEncoding и responseEncoding, как показано в следующем примере:
<configuration> <system.web> <globalization fileEncoding="utf-8"requestEncoding="utf-8"responseEncoding="utf-8" culture="en-US" uiCulture="de-DE" /> </system.web> </configuration>
Чтобы установить кодировку для отдельной страницы, задайте атрибуты RequestEncoding и ResponseEncoding директивы @ Page, как показано в следующем примере:
<%@ Page RequestEncoding="utf-8" ResponseEncoding="utf-8" %>
Примечание. Невозможно задать атрибут fileEncoding, так как он применяется к самому файлу.