Jump to content
  • 0

Кодировка в полях формы, которая сабмитится на другой сайт


Sochog
 Share

Question

Проблема в следующем:

Имеем страницу в кодировке utf-8. На странице имеется форма, в которую вводятся названия городов (русскими буквами). Форма отсылает введенные данные на другой сайт. На сайте том кодировка windows-1251. Его CGI-скрипты не хотят обрабатывать данные в utf-8. Сайт чужой и повлиять на него не получается ^_^, а переводить исходную страничку на windows-1251 нельзя по определенным причинам.

Вопрос в следующем: можно ли как-нибудь заставить браузер отправить данные из формы не в той кодировке, в которой закодирована сама страница с формой?

Искал в гугле -- не нашел. Нашел только других людей, у которых была такая проблема, и они с ней не справились.

Пробовал сделать так:

<form action="http://..." method="post" enctype="application/x-www-form-urlencoded; charset=windows-1251">

не получилось :P

Поискал на этом форуме -- тоже не нашел...

На странице уже есть jQuery, может его можно использовать для этой цели как-нибудь?

Вот тут, кстати, человек интересуется той же проблемой: http://forum.developing.ru/showthread.php?t=3052

Edited by Sochog
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Короче, пока видится 2 варианта:

1) либо направить форму на свой пхп скрипт, который выдаст страницу перенаправления на исходный скрипт, но эта страница будет в вин-1251,

2) либо использовать метод $.post() из библиотеки jQuery (пока ещё не уверен, что так можно ^_^ )

А лучше и то, и другое на случай если у юзера нет скриптов или они заблокированы.

Это решение мне не очень нравится, т.к. оно достаточно сложное, буду весьма признателен за Ваши идеи и предложения :P

Edited by Sochog
Link to comment
Share on other sites

  • 0

По-моему 1-й вариант исчерпывающий, не вижу смысла применять JavaScript.

Форма отправляет данные на свой php-скрипт, который перекодирует данные из utf-8 в windows-1251 и направляет post-запрос с перекодированными данными уже на искомую страницу.

Link to comment
Share on other sites

  • 0

сделал первый вариант. Генерит примерно это (только со всеми остальными штуками -- доктайп, тайтл и т.п.):

<form action="http://..." method="post" id="f"><div>
От: <input type="text" name="City1" value="" /><br />
Через: <input type="text" name="City2" value="" /><br />
Нажмите эту кнопку:
<input type="submit" value="Определить" name="Submit1" />
</div></form>
<script type="text/javascript">
document.getElementById('f').submit();
</script>

Всё получается, но в опере 9.27 успевает сначала появиться эта форма, а лишь затем идёт переадрессация. Форма и кнопка нужны на тот случай, если у юзера нет JS.

Либо надо как-то ускорить (изменить) этот процесс, либо реализовать ещё и второй способ.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy