Неправильная кодировка в ASP classic, загруженная через AJAX - PullRequest
1 голос
/ 15 марта 2012

У меня проблема с динамической загрузкой части контента на классической странице ASP. Я использую AJAX для динамической загрузки страницы, в зависимости от выбранной опции. Сгенерированный содержит некоторые метки для содержания выпадающих и текст опции внутри выпадающих. Метки являются константами, закодированными в UTF-8, и содержат некоторые акцентированные символы Западной Европы, а тексты опций загружаются из базы данных, содержат также акцентированные символы, но кодируются в ANSI. теги установлены в utf-8, но это влияет только на первую загрузку страницы, потому что все это вместе на странице. После выбора других опций, AJAX заполняется элементами и хорошо загружает метки, но текст опций испорчен, так что я предполагаю, что AJAX не загружает кодирование с текстом во второй и т. Д. Обходным решением было изменить текст метки в константах и ​​установить <% Response.Charset = "windows-1252"%> на странице, которая загружается в первый раз. Теперь я хочу найти лучший способ для этого, предпочтительно в ответе AJAX, чтобы установить все это в UTF-8 или windows-1225, или чтобы каждый элемент на странице имел различное кодирование с помощью ajax. Я даже пробовал заменить функцию из ASP classic, она работает, но опять же, для каждой новой буквы с акцентом нужно заменить. Любая помощь приветствуется! :)

1 Ответ

3 голосов
/ 15 марта 2012

Я думаю, что лучший способ решить проблемы с кодировкой - перейти на utf-8.Это не только устраняет головную боль при обработке специальных символов на вашем родном языке, но в значительной степени (как я понимаю utf-8) на всех языках!

Во-первых, включите следующий метатег в заголовок HTML.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Вам также нужно будет установить UTF-8 вверху всех задействованных asp-файлов.

response.codepage = 65001
response.charset = "utf-8" 

Обратите внимание, что символы, размещенные на ваших asp-страницах и с них (например, через форму), будут интерпретироваться как utf-8.Внутренне в скриптовом движке строки хранятся как юникод.Убедитесь, что последовательно сохраняете данные как юникод в базе данных.

Прочтите ответ на этот вопрос для получения более подробной информации

...