Авторизация:

JS + HTTPRequestRSS-трансляция

Поиск

Найти сообщения:  За сутки  |  Без ответов
Автор Сообщение
Ссылка17.03.2010 в 05:51  [Отредактировано: 17.03.2010 в 06:13]
Есть функция, забирающая с сервера текст. Текст забирается, но отображается не в указываемой кодировке. Помогите, пожалуйста, разобраться.

Вот функция на JS
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function getXML(url, eid) {
    var agent = null;
    var method = 'GET';
   try{agent=new XMLHttpRequest();}catch(e){try{agent=new ActiveXObject('Msxml2.XMLHTTP.3.0');}catch(e){try{agent=new ActiveXObject('Msxml2.XMLHTTP');}catch(e){try{agent=new ActiveXObject('Microsoft.XMLHTTP');}catch(e){alert('AJAX MESSAGE: initialization error')}}}}
    agent.open(method, url, true);
    agent.setRequestHeader('Connection', 'close');
    agent.setRequestHeader('charset', 'UTF-8');
    agent.setRequestHeader('charset', 'Windows-1251');

//    agent.overrideMimeType('text/plain; charset=windows-1251')

    agent.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    agent.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan ***:00:00 GMT');
    agent.onreadystatechange = function() {
    if(agent.readyState==4) {
          if(agent.status==200) {
//                  alert(agent.responseText);
             document.getElementById(eid).innerHTML = agent.responseText;
          } else {
             alert('AJAX MESSAGE: '+agent.status+' '+agent.statusText)
          }
       }
    }
    agent.send('');
};

Текст, который функция забирает с сервера это обычный текстовый файл, без XTML заголовков, в кодировке windows-1251.
Использование конструкции agent.overrideMimeType('text/plain; charset=windows-1251') - решает проблему только в Mozille. Браузер IE вообще её не поддерживает.

Подскажите, пожалуйста, как преобразовать получаемый через HTTPRequest текст из KOI-8 в Windows-1251
Ссылка17.03.2010 в 09:07
Скрипт обращается к файлу *.php для получения текста.
в этом файле я в начале пишу
Код:
1
2
3
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-type: text/plain; charset=windows-1251");
Ссылка17.03.2010 в 09:39  [Отредактировано: 17.03.2010 в 09:39]
theCoder, скрипт обращается не к HTML/XML странице а к простому текстовому файлу - file.txt
В котором нет HTTP заголовка, где можно указать кодовую страницу.
Ссылка17.03.2010 в 09:41  [Отредактировано: 17.03.2010 в 09:58]
Цитата (HarryHaller):
agent.open(method, url, true)

что у вас в url ?
Насколько я понимаю url должен указывать на php, в котором уже идет получение текста из txt файла и передача его обратно.
Ссылка17.03.2010 в 10:02
theCoder, в URL как можно догадаться ссылка на текстовый файл. Может выглядеть так - http://server.my/kuda-to/text_file.txt
Вовсе не обязательно ссылаться на PHP
Ссылка17.03.2010 в 10:03
Ну тогда не знаю.
Я всегда ссылаюсь на php, т.к. получаю данные из БД