![]() |
Как изменить кодировку новосозданного документа
Вопрос достаточно сложный.
WINDOWS XP, Firefox 1.5.0.4 По умолчанию, кодировка страницы, созданной через javascript - UTF-8. Как выглядит "создание": Код:
javascript: Тоже самое будет, если созданный документ имеет POST-форму - передаваемый текст будет искорёжен. Если у созданного документ посмотреть кодировку - увидим... UTF-8. А по идее, должны иметь WIN1251. Если бы вопрос стоял о сохранении документа, я бы сменил кодировку в тексте "charset=" Если бы форма была метода GET, я переконвертировал бы текст UTF8 -> WIN1251. Но у меня затык именно с формой POST. :[ Задача такая: нужно явным образом указать нужную кодировку у созданного через javascript документа. Есть какие-нибудь мысли по поводу? |
hasherfrog
почему с POST не поспунить так же как с GET ??? Цитата:
|
Vlad Drakula
Потому что GET (в таком случае) я формирую уже прямым созданием корректного URL'а и перехожу по нему. То есть я не перекодирую текст, записываю в форму, делаю сабмит, а сразу, самостоятельно иду куда мне нужно. А с POST'ом такой номер не пройдёт - мне нужно именно корректно выставить значения текстовых полей. А я не могу!!! Я туда пишу вроде корректный текст, но он-то "оказывается" UTF-8! Хотя при этом передаётся - как WIN1251. Принимающий сервер обалдевает и не понимает. |
hasherfrog
чего то я не помню чтобы на принимающий сервер отправлялось значение в какой кодировке текст... |
Для наглядности. Передаём слово "АБВГДЕЙКА"
Как должно быть (это вариант вызова со страницы, предварительно сохранённой на диск) Код:
POST /request.php HTTP/1.1 Код:
POST /request.php HTTP/1.1 А я ему втюхиваю UTF8. Но как переслать именно win1251??? |
// На тот случай, если кто-нибудь будет думать сходно со мной
// Я уже кучу бредовых вариантов перепробЫвал. Если перекодировать текст (который UTF-8) в Win1251, затем сделать unescape, записать результат в форму, и послать. При посылке вроде будет сделан escape() и "получится". Но в результате всё равно посылается бред: Код:
text=%C3%80%C3%81%C3%82%C3%83%C3%84%C3%85%C3%89%C3%8A%C3%80 Единственный способ - явно указать Firefox, что кодировка страницы, с которой производится отправка - Win 1251. А вот это я никак не могу сделать, по умолчанию она всё время UTF-8. |
hasherfrog
эта бролмемма возникает тольуо в FF или и в других бпроузерах тоже? |
Vlad Drakula
Всё, разрешилось. http://forum.mozilla.ru/viewtopic.php?id=10773 Всем спасибо. Код:
<script> |
Результат (Данный букмарклет ищет нужное слово в словарях и онлайн-энциклопедиях на dic.academic.ru)
Код:
javascript:(function(){var x=prompt('Search for','');if(x!=null){var doc='<html><head><title>Test</title><base target="_blank">';doc+='</head><script><'+'/script><body>';doc+='<form action="http://dic.academic.ru/searchall.php" method="post" name="searchform" accept-charset="windows-1251">';var chks=new Array("dic[lower]","dic[ushakov]","dic[enc1p]","dic[enc2p]","dic[enc3p]","dic[ogegova]","dic[brokgauz]","dic[muller]","dic[idioms]","dic[fin_enc]","dic[econ_dict]","dic[efin_dic]","dic[fin2]","dic[anticris]","dic[geolog]","dic[hist_dic]","dic[biograf]","onlythermin");for(var i=0;i<chks.length;i++){doc+='<input name="';doc+=chks[i];doc+='" checked="checked" type="checkbox">';}doc+='<input name="thermin" type="text" value="';doc+=x;doc+='">';doc+='<input name="sss" type="submit">';doc+='</body></html>';var nW=window.open('','hash','width=200,height=100');var nD=nW.document;nD.open('text/html');nD.writeln(doc);nD.close();nW.focus();nD.searchform.submit();nW.close();}})() |
Время: 20:32. |
Время: 20:32.
© OSzone.net 2001-