Кодировка, в которой посылаются данные формы

html JavaScript encoding

Есть страница в однобайтной кодировке (допустим, cp1251).
На ней лежит форма с десятком полей.
Форма должна отправляться на страницу, которая по умолчанию хочет видеть данные в utf-8.

Надо найти решение одного из двух вопросов:
- как передать данные со страницы в однобайтной кодировке в utf-8?
- как указать, что передаваемые данные кодированы в однобайтной кодировке?

Разумеется, я буду ковырять проблему, но если у кого-то есть решение подобной - поделитесь

Примечание:
принимающую страницу (ту, что ожидает utf-8) модифицировать нет возможности.

Примечание:
> ээ, а причем тут JavaScript?
потому что вопрос, скорее, по программингу, чем по вёрстке. да и прогер, шарящий в JS, должен знать больше о кодировках, чем верстальщег

> оно?
обчитался по этому свойству дополнительно ещё и на MSDN - по идее, это перечень кодировок, в которых сервер ожидает получить данные. но я указал программно
form.acceptCahrset = 'utf-8';
- запрос не изменился ни на байт

Примечание:
> grinka
> Вот тут подробно всё описано
и как эти "новые" знания применимы к описанной проблеме?

Примечание:
мой пардон: я не уточнил, что запрос идёт между разными доменами и XmlHttpRequest не катит.

> grinka
> Вы собираетесь как раз при помощи Javascript. Который, при использовании описанных "новых" знаний как раз и будет отсылать всё в utf-8, чего Вам и хотелось
как я указал выше, XmlHttpRequest не поможет. вручную запрос не создашь. возможна только отправка формы средствами HTML FORM.
тем самым мы скатились к первоначальным вопросам: как модифицировать форму, чтобы запрос шёл с указанием кодировки или чтобы запрос шёл в utf-8?

Примечание:
я тут поковырялся и нашёл решение с дополнительным фреймом. документ в новом фрейме (или окне - как удобно) всегда создаётся в utf-8. копирование данных из основного документа в форму в новом фрейме и отправка уже новой формы решают проблему. жирный минус: отправка файлов невозможна :(

Примечание:
> imit2010
это опечатка здесь, на ВиО: я тут руками набирал, не копипастил. в скрипте всё корректно
Ответы:
ээ, а причем тут JavaScript?
Вот тут подробно всё описано
Ну, дружище, если Вы отмечаете вопрос как относящийся к Javascript резонно предположить, что отправлять форму Вы собираетесь как раз при помощи Javascript. Который, при использовании описанных "новых" знаний как раз и будет отсылать всё в utf-8, чего Вам и хотелось.
Рискну предложить вариант с использованием "прокси" - то бишь скрипта на локальном сервере, который будет получать информацию от формы/яваскрипта, переводить данные в "удобоваримый" формат, отправлять на чужой домен и потом транслировать результат. Много дополнительных танцев получается, зато с гарантией.
У вас только один вариант - отправлять данные уже в utf-8. Для этого пробегитесь по текстовым контролам формы и перед самой отправкой конвертните их в utf-8 (записав результат обратно в value этих же контролов). При этом если на форме есть файловый контрол, не трогайте его, файлы будут отправляться, так как submit'тить вы будете именно эту форму.
А разве  form.acceptCahrset = 'utf-8'; не должно быть  form.acceptCharset = 'utf-8'; ?


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.