Показать сообщение отдельно
  #1 (permalink)  
Старый 28.04.2010, 18:03
Аспирант
Отправить личное сообщение для GRIG Посмотреть профиль Найти все сообщения от GRIG
 
Регистрация: 26.03.2010
Сообщений: 55

Проблема с кодировкой кирилицы внутри скрипта
Привет всем. Помогите решить такую проблему.
На странице есть форма для ввода фильтров для поискового запроса. Среди прочего в этой форме есть такой кусок:
<select id="my_select">
  <option value="default">Default</option>
</select>

После того, как страница загружена в броузер, срабатывает скрипт, который средствами AJAX'а подгружает другие варианты для этого select'а. При этом делается следующее:
for( var i = 0; i < data.n; i++ )
  $('#my_select').append( '<option>' + data.selections[i] + '</option>' );

А потом пользоваетель как-то инициирует отправку формы на сервер. При этом генерится строка для передачи на сервер методом GET. Для указанного куска делается следующее:
form_data += "&" + send_form.elements[i].id + "=" + send_form.elements[i][ send_form.elements[i].selectedIndex ].value;

Неприятность заключается в следующем. Подгруженные варианты выбора могут содержать в себе русские буквы. При генерации строки-запроса для передачи на сервер эти буквы копируются "как есть" (проверял в отладчике). Однако потом они как-то преобразуются в конструкцию вида "%C1%C2%C3..." Преобразовать, естественно, надо, поскольку не все символы допустимы в URL'е. Но прикол в том, что это преобразование ведется соответственно виндовой кодировке, хотя сервер все данные (и исходную страницу, и последующие варианты выбора) присылает в КОИ8-Р. Да и броузер живет на линухе, который русифицирован в кодировке КОИ8-Р. Откуда тут берется виндовая кодировка - совершенно непонятно.
Есть какие-нибудь идеи?
Ответить с цитированием