powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / XMLHTTP отправляет данные из JavaScript в UTF-8
3 сообщений из 3, страница 1 из 1
XMLHTTP отправляет данные из JavaScript в UTF-8
    #34283491
Добрый день.

Есть надобность отправлять русский текст используя XMLHTTP. Сделал простенький пример, помогите пожалуста разобраться. Убил на это уже несколько часов, а решения все нне приходит.

Итак.
I . есть файл simple.html, который лежит в руте и запускается так: http://localhost:88/simple.html. Вот его содержание:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script>
function Send()
{
var value = document.getElementById("name").value;

if (value != "")
{
var result = SendRequest(value);
//см. картинку и сноску (1) на ней
document.getElementById("jsResult").innerText = value;

//см. картинку и сноску (2) на ней
document.getElementById("xmlHttpResult").innerText = result;
}
}

function SendRequest(value)
{
var data = "name=" + value;
var http = new ActiveXObject("Microsoft.XMLHTTP");

http.open("POST", "/cgi-bin/simple.cgi", false);
http.setRequestHeader("Content-Type","text/html; charset=windows-1251");
http.send(data);

return http.responseText;
}

</script>
</head>
<body>


Введите строку: <input type="text" id="name"><input type="button" value="Отправить" onClick="javascript:Send();"><hr>
1. Результат JavaScript: <strong><span id="jsResult"></span></strong><br>
2. Результат XMLHTTP: <strong><span id="xmlHttpResult"></span></strong>

</body>
</html>

II . В папке cgi-bin лежит simple.cgi:

#!/usr/bin/perl

use CGI qw/:standard/;
$query = new CGI;

print $query->header(-expires=>'now', -Content_Type=>'text/html; charset=windows-1251');
$name = $query->param("name");

print $name;


Проблема : Когда я жму кнопку отправить, то см. рисунок (1), т.е. jsResult заполняется правильными данными. (2), т.е. xmlHttpResult заполняется криво. Все это видно на рисунке. HttpWatcher показывает, что кодировки запроса и ответа windows-1251 (выделено).

А вот закладка с информацией какие же данные были отправлены (PostData - на картинке изображена ввеху) показывает, что данные уходят в UTF-8. Разбирать ушедшее в simple.cgi желания нет и знаний нет.

Вопрос : почему при выставленных во всех возможных местах кодировках данные уходят в UTF-8? Как сделать чтобы данные уходили в Win1251 ?

зы: Судя по результатам поиска тема избитая, то у кого-то файл не в тй кодировке риходит, то часть букв вопросами. Все решения которые я видел сводились к тому, чтоб попробовать везде выставить одинаковую кодировку, например, windows-1251. Мне это отчего-то не помогло (см. рисунок)

Спасибо.

http://antipod.russia.webmatrixhosting.net
...
Рейтинг: 0 / 0
XMLHTTP отправляет данные из JavaScript в UTF-8
    #34283741
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я всё для веб кодирую В UTF-8, таких проблем не возникает
JS1.5 reference
Похоже JS для внутреннего представления использует utf-8
надо перекодировать. На стороне сервера проще,
в JS надо смотреть escape() encodeURI() и методы String объекта
...
Рейтинг: 0 / 0
XMLHTTP отправляет данные из JavaScript в UTF-8
    #34289213
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я только что маялся с этой проблемой.
url, к которому обращался xmlHttpRequest написан на php.
До тех пор, пока в нём я не написал явное преобразование в UTF-8:
Код: plaintext
$f=iconv("Windows-1251","UTF-8", $f);
получал крякозябру.
Я понял так, что javascript ожидает получения UTF-8.
Почему - не знаю. И как ему указать, что придёт другая кодировка, тоже не знаю.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / XMLHTTP отправляет данные из JavaScript в UTF-8
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]