$ jQuery .get () набор символов ответа, когда никакой заголовок не установлен?

Я просто недавно установил Запрашивающую сторону Песни Winamp, которая является веб-плагином запрашивающей стороны песни Winamp с созданным в минимальном HTTP Сервер CGI.

То, что делает плагин, - то, что он выполняет веб-сервер, служит странице HTML с некоторыми специальными переменными, которые он заменяет фактическими данными по запросу (плей-лист, очередь запроса, время, оставленное в песне и т.д.).

Я рассматривал это как забавный и хороший проект изучить некоторый jQuery, таким образом, я запустил присоединение мой собственный код js, чтобы заменить, зафиксировать и ajaxify подаваемый веб-сайт от плагина, но я теперь столкнулся с проблемой с кодировкой символов.

На странице Вы получаете ссылки на все песни в плей-листе. Когда Вы нажимаете на одну из ссылок, я поднял трубку свою собственную функцию щелчка jQuery. Таким образом вместо того, чтобы перезагрузить целую страницу, когда Вы запрашиваете песню, я делаю a $.get($(this).attr('href', function(response) {... code ...}) и затем я использую replaceWith для замены текущей очереди новой сгенерированной очередью с запросом, добавленным на лету. Я делаю то же самое для показывания/обновления в настоящее время проигрывания и на поиске так, чтобы все было выбрано в фоновом режиме и затем заменило на лету некоторыми добавленными анимациями.

Весь jQuery/Ajax работает отлично, но большая проблема, которую я имею, с набором символов и с названиями песни в очереди/плей-листе. Специальные символы (åäöé и т.д.) на имена не работают вообще.

Сменные выводы все в iso-8859-1/latin1 и мой метатег в разметке говорят браузеру, что эта страница является latin1. На нормальном обновлении страницы в браузере это работает хорошо и дисплей специальных символов как нормальный. Но когда я использую jQuery и $.get() для замены блоков кода на лету, специальные символы только обнаруживаются как?.

Я думаю, что проблема заключается во что значения по умолчанию jQuery, чтобы полагать что $.get() ответ является UTF-8, если ни в каком заголовке не говорится иначе. Плагин не устанавливает заголовка для кодирования/набора символов вообще и так как я не имею никакого контроля во всем бэкенде и какие заголовки установлены, я не могу изменить это.

Единственные заголовки я вхожу в ответ от плагина:

Сервер: WinampServer
Соединение:закрыть
Тип контента: текст/HTML

Я надеюсь, что Вы понимаете мою проблему. У меня есть страница, где я не имею никакого контроля в на всем протяжении бэкенда и всего, с чем я должен работать, сгенерированный HTML. Я не могу изменить или добавить заголовки в ответах. Я должен сказать jQuery, что ответ находится на самом деле в latin1 и не UTF-8 так, чтобы кодирование специальных символов не повреждалось. Я попробовал scriptCharset: 'iso-8859-1' в jQuerys ajaxSetup, но который только работает с типом script/json и я работаю с ответами HTML.

Какая-либо идея, если это возможно или какое-либо другое обходное решение, Вы могли бы думать о?

6
задан Priyanga 18 October 2019 в 13:37
поделиться