1

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

ответ

3

Я думаю, что лучший способ решить проблемы с кодировкой - переключиться на 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. Внутренне строки сценария скрипта хранятся как unicode. Убедитесь, что последовательно сохраняйте данные в формате unicode в базе данных.

Читать ответ на этот question для более глубокой информации

+0

Я знаю, что. включен на каждую страницу, но когда я загружаю данные из БД, он автоматически изменяется на utf-8 и на странице что данные повреждены. Изменение типа данных БД не является вариантом, потому что наша БД слишком велика и широко используется. Это уникальная проблема cos 2 разных источников данных (.asp LIB и DB). Я думаю получить ответ от ajax, затем отфильтровать его (.filter()) и добавить charset = utf-8 в раскрывающийся ярлык, а charset = windows-1252 - в раскрывающихся списках параметров. Не могу найти, как фильтровать обе вещи в то же время, потому что cos 1 part удаляется – user1271080

+0

Это ужасная идея для хранения utf-8 внутри базы данных. Любая операция над этими данными, скажем, SQL, должна знать, что это utf-8. Для такой простой операции, как измерение длины строки yo urun в большие проблемы. Храните юникод внутри вашего db. – Paul

+0

@Paul Я изменил свой ответ на основе вашего комментария. Пожалуйста, убедитесь, что я понял. Если было бы правильно, было бы неплохо, если бы вы удалили отрицательный голос. Имейте приятную пятницу! :) – David