Символы UTF, полученные с помощью AJAX, не отображаются в Safari - PullRequest
3 голосов
/ 19 июня 2009

У меня проблема с отображением содержимого, полученного с помощью Ajax, на мою HTML-страницу в Safari (v.4). Страница хранится в UTF-8, ответ Ajax также кодируется в UTF-8.

Загруженный контент анализируется, а затем различные типы списков заполняются проанализированными данными. Одним из них является простой элемент

option.innerHTML = "";
option.appendChild(document.createTextNode(text));

Мой текст содержит французские символы. В результате выполнения кода выше элемент

Использование

option.innerHTML = escapeGtLtAmp(text);

имеет тот же результат.

Если для французского содержимого установлено значение innerHTML некоторого

, то текст отображается не разделенным, а просто без неанглийских букв.

В Firefox 2 все работает нормально.

Ответы [ 2 ]

0 голосов
/ 21 июня 2009

У меня была похожая проблема с Firefox 3, и казалось, что проблема была в вызове ajax. Я также пытался изменить заголовки запроса, но проблема продолжалась. Поэтому я попытался загрузить данные из iframe, таким образом, полностью избегая ajax, а затем получить innerHTML iframe.

Если вы используете jquery, возможно этот маленький плагин может помочь вам или просто дать вам идею

0 голосов
/ 19 июня 2009

Страница хранится в UTF-8, ответ Ajax также кодируется в UTF-8.

Имеет ли AJAX-ответ также заголовок Content-Type-HTTP-заголовка, установленный в UTF-8?

...