Поделиться через


Практическое руководство. Выбор кодировки для глобализации веб-страницы 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.

39d1w2xf.alert_note(ru-ru,VS.90).gifПримечание.

Некоторые конструкторы, например Visual Studio 2005, могут сохранить ASPX-файлы, использующие различные кодировки.

39d1w2xf.alert_caution(ru-ru,VS.90).gifВнимание!

Имя веб-приложения может отображаться на компьютере пользователя неправильно, если оно использует набор двухбайтовых символов (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" %>
    
    39d1w2xf.alert_note(ru-ru,VS.90).gifПримечание.

    Невозможно задать атрибут fileEncoding, так как он применяется к самому файлу.

См. также

Другие ресурсы

Глобализация и локализация ASP.NET