Помогите разобраться с JS
22 сообщения
#15 лет назад
При обращении из HTTPRequest к серверу данные возвращаются в кодировке UTF-8Их нужно конвертировать в Windows-1251 средствами JS
Для браузера Mozilla замечательно работает конструкция
agent.overrideMimeType('text/plain; charset=windows-1251')
В IE такая конструкция не работает - не реализован соответствующий метод overrideMimeType('text/plain; charset=windows-1251'

Подскажите, пожалуйста, как сделать аналогичное преобразование для работы в IE и Opera.
203 сообщения
22 сообщения
#15 лет назад
maxim_belkin, я перепробовал массу, но результата нет.Установить кодировку на сервере возможности нет.
1172 сообщения
#15 лет назад
Если вызываемый через аякс скрипт на PHP, то лечится добавлением в негоheader("Content-type: text/plain; charset=windows-1251"

22 сообщения
#15 лет назад
Lisio, в вопросе написано, что с сервера забирается текстовый файл. Просто текст, без всяких HTTP заголовков.
248 сообщений
#15 лет назад
UTF8 = {
encode: function(s){
for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;
s = (c = s.charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s
);
return s.join("");
},
decode: function(s){
for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
((a = s(0)) & 0x80) &&
(s = (a & 0xfc) == 0xc0 && ((b = s(0)) & 0xc0) == 0x80 ?
o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s = "")
);
return s.join("");
}
};
var s = "Текст в кодировке UTF8";
alert(UTF8.decode(s));
Попробуйте это.
1172 сообщения
#15 лет назад
<?php
header("Content-type: text/plain; charset=windows-1251");
readfile('file.txt');
?>
Цитата ("HarryHaller"):
Lisio, в вопросе написано, что с сервера забирается текстовый файл. Просто текст, без всяких HTTP заголовков.
В вопросе у вас написано не то, что вы забираете текстовый файл, а то что насильственно переопределяете его MIME-тип и кодировку. Разные вещи, однако.
22 сообщения
#15 лет назад
r0b1n, сам файл в windows-1251, но после его принятия читается как utf-8 и, соответственно, так же и выводится.Хотелось бы принятые данные перекодировать в win-1251.
22 сообщения
#15 лет назад
werewolf, спасибо. Но не сработало...
248 сообщений
#15 лет назад
Цитата ("HarryHaller"):сам файл в windows-1251
Цитата ("HarryHaller"):
werewolf, спасибо. Но не сработало...
Конечно в этом случае бессмысленно конвертировать.
99 сообщений
#15 лет назад
Посмотрите с какими хедерами приходит браузеру этот злополучный файл, должна быть явно указана кодировка - cp1251, (как сдеать с помощью PHP указал Lisio или Вариант с .htaccess от maxim_belkin) иначе браузер думает что это UTF-8(особенно уверенно он так думает, если кодировка указана как UTF-8).