У меня проблема с динамической загрузкой части контента на странице 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
1
A
ответ
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 для более глубокой информации
Я знаю, что. включен на каждую страницу, но когда я загружаю данные из БД, он автоматически изменяется на utf-8 и на странице что данные повреждены. Изменение типа данных БД не является вариантом, потому что наша БД слишком велика и широко используется. Это уникальная проблема cos 2 разных источников данных (.asp LIB и DB). Я думаю получить ответ от ajax, затем отфильтровать его (.filter()) и добавить charset = utf-8 в раскрывающийся ярлык, а charset = windows-1252 - в раскрывающихся списках параметров. Не могу найти, как фильтровать обе вещи в то же время, потому что cos 1 part удаляется – user1271080
Это ужасная идея для хранения utf-8 внутри базы данных. Любая операция над этими данными, скажем, SQL, должна знать, что это utf-8. Для такой простой операции, как измерение длины строки yo urun в большие проблемы. Храните юникод внутри вашего db. – Paul
@Paul Я изменил свой ответ на основе вашего комментария. Пожалуйста, убедитесь, что я понял. Если было бы правильно, было бы неплохо, если бы вы удалили отрицательный голос. Имейте приятную пятницу! :) – David