|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Как изменить кодировку новосозданного документа |
|
[решено] Как изменить кодировку новосозданного документа
|
Старый параноик Сообщения: 2423 |
Профиль | Отправить PM | Цитировать Вопрос достаточно сложный.
WINDOWS XP, Firefox 1.5.0.4 По умолчанию, кодировка страницы, созданной через javascript - UTF-8. Как выглядит "создание": javascript: (function(){ nW = window.open('','test','width=200,height=200'); nD=nW.document; nD.open(); nD.writeln('<?xml version="1.0" encoding="windows-1251"?>'); nD.writeln('<html><head><title>Test</title><base target=\'_blank\'>'); nD.writeln('<meta http-equiv="content-type" content="text/html; charset=windows-1251">'); nD.writeln('</head><script></script><body>'); nD.writeln('<p>ТЕКСТ</p>'); nD.writeln('</body></html>'); nD.close(); nW.focus(); /*nW.close();*/ } )() Тоже самое будет, если созданный документ имеет POST-форму - передаваемый текст будет искорёжен. Если у созданного документ посмотреть кодировку - увидим... UTF-8. А по идее, должны иметь WIN1251. Если бы вопрос стоял о сохранении документа, я бы сменил кодировку в тексте "charset=" Если бы форма была метода GET, я переконвертировал бы текст UTF8 -> WIN1251. Но у меня затык именно с формой POST. :[ Задача такая: нужно явным образом указать нужную кодировку у созданного через javascript документа. Есть какие-нибудь мысли по поводу? |
|
Отправлено: 13:52, 06-06-2006 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать hasherfrog
почему с POST не поспунить так же как с GET ??? Цитата:
|
|
------- Отправлено: 13:58, 06-06-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Vlad Drakula
Потому что GET (в таком случае) я формирую уже прямым созданием корректного URL'а и перехожу по нему. То есть я не перекодирую текст, записываю в форму, делаю сабмит, а сразу, самостоятельно иду куда мне нужно. А с POST'ом такой номер не пройдёт - мне нужно именно корректно выставить значения текстовых полей. А я не могу!!! Я туда пишу вроде корректный текст, но он-то "оказывается" UTF-8! Хотя при этом передаётся - как WIN1251. Принимающий сервер обалдевает и не понимает. |
Отправлено: 14:12, 06-06-2006 | #3 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать hasherfrog
чего то я не помню чтобы на принимающий сервер отправлялось значение в какой кодировке текст... |
------- Отправлено: 14:20, 06-06-2006 | #4 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Для наглядности. Передаём слово "АБВГДЕЙКА"
Как должно быть (это вариант вызова со страницы, предварительно сохранённой на диск) POST /request.php HTTP/1.1 Host: xxx.xxx.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Content-Type: application/x-www-form-urlencoded Content-Length: xx text=%C0%C1%C2%C3%C4%C5%C9%CA%C0 POST /request.php HTTP/1.1 Host: xxx.xxx.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Content-Type: application/x-www-form-urlencoded Content-Length: xx text=%D0%90%D0%91%D0%92%D0%93%D0%94%D0%95%D0%99%D0%9A%D0%90 А я ему втюхиваю UTF8. Но как переслать именно win1251??? |
|
Отправлено: 14:26, 06-06-2006 | #5 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать // На тот случай, если кто-нибудь будет думать сходно со мной
// Я уже кучу бредовых вариантов перепробЫвал. Если перекодировать текст (который UTF-8) в Win1251, затем сделать unescape, записать результат в форму, и послать. При посылке вроде будет сделан escape() и "получится". Но в результате всё равно посылается бред: В общем, все эти трюки ничего не дают. Единственный способ - явно указать Firefox, что кодировка страницы, с которой производится отправка - Win 1251. А вот это я никак не могу сделать, по умолчанию она всё время UTF-8. |
Отправлено: 14:50, 06-06-2006 | #6 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать hasherfrog
эта бролмемма возникает тольуо в FF или и в других бпроузерах тоже? |
------- Отправлено: 16:13, 06-06-2006 | #7 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Vlad Drakula
Всё, разрешилось. http://forum.mozilla.ru/viewtopic.php?id=10773 Всем спасибо. <script> function show() { var doc = 'data:text/html;charset=windows-1251,<html><head><title>Test</title><base target="_blank"></head><script><'+'/script><body><p>ТЕКСТ</p></body></html>'; var nW = window.open(doc,'test','width=200,height=200'); nW.focus(); return false; } </script> <body><a onclick="return show()">click me</a></body> |
Отправлено: 10:50, 07-06-2006 | #8 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Результат (Данный букмарклет ищет нужное слово в словарях и онлайн-энциклопедиях на 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();}})() |
Отправлено: 14:17, 07-06-2006 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Изменить кодировку Internet Explorer через груповую политику | oren_yastreb | Microsoft Windows NT/2000/2003 | 0 | 12-05-2009 08:01 | |
Разное - Как поменять кодировку в ресурсах Windows? | abdyl.net | Оформление Windows XP | 11 | 17-11-2008 20:59 | |
Интернет - как поставить кодировку | _ВасЯ_ | Microsoft Windows 2000/XP | 9 | 03-09-2007 11:35 | |
Как изменить дату создания/модификации документа Word | VAGO | Хочу все знать | 8 | 07-12-2006 17:18 | |
изменить скриптом кодировку | IZOprogman | Вебмастеру | 3 | 06-02-2005 13:00 |
|