Maksim
1

XMLHTTP. Как послать русский текст?

10.09.2009, 11:38. Показов 2642. Ответов 12
Метки нет (Все метки)

Код
var my_xml='<doc>Текст на русском языке</doc>'
var xobjreq=new ActiveXObject('microsoft.xmlhttp');
xobjreq.open('POST',url, false);
xobjreq.send(my_xml);
Требуется послать на сервер, используя объект XMLHTTP, XML содержащий русские буквы...
Однако посылается черти что...
Как бороться?
Пробовал устанавливать заголовки, не помогает...
Подскажите, кто знает, пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2009, 11:38
Ответы с готовыми решениями:

Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский текст без сбитой...

Как послать в блокнот текст
Стоит задача написать некоторый текст в блокноте. С помощью Spy++ определил, что в блокноте 2...

Как из другого класса послать текст в textBox?
Здравствуйте) Вопрос очень простой, хоть внизу и много строк: Как из другого класса послать...

Как выводить русский текст?
помогите кто нибудь с выводом русского текста в этой программе пытался воспользоваться решениями с...

12
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
10.09.2009, 11:55 2
Насколько мне известно XML не должен содержать символов отличных от латиницы. Все другие символы кодируются. Попробуй посмотреть свой XML в эксплорере, у меня он ошибку выдает.
0
Maksim
10.09.2009, 12:11 3
Проблема не в этом...
Как вообще использовать в данном случае русские буквы?
Я могу посылать не обязательно XML, могу послать просто переменные или текст...

Кстати, XML может содержать русские буквы...
Добавь в начало строку
<?xml version='1.0' encoding='windows-1251'?>
и посмотри в эксплорере...
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
10.09.2009, 12:18 4
xobjreq.send(escape(my_xml));
0
Maksim
10.09.2009, 12:28 5
Пробовал так...
Потом на серверной странице не знаю как вернуть русский текст...
Кодирует как-то нестандартно оно эти символы...
Maksim
10.09.2009, 15:19 6
Допустим, браузер при отсылке формы слово 'Привет!' кодирует как
%CF%F0%E8%E2%E5%F2%21

А метод escape('Привет!') выдает:
%u041F%u0440%u0438%u0432%u0435%u0442%21
0 / 0 / 0
Регистрация: 16.02.2009
Сообщений: 18
11.09.2009, 12:15 7
засуньте этот уникод в unscape(%u041F%u0440%u0438%u0432%u0435%u0442%21) и получите назад 'Привет!'

что то я наверное не поняла - в чём проблема то?
0
Maksim
11.09.2009, 12:22 8
Эта строка посылается методом POST на сервер, и там транслируется совершенно непонятным образом...
Тем более метода unescape на сервере не существует.
0 / 0 / 0
Регистрация: 16.02.2009
Сообщений: 18
13.09.2009, 17:56 9
Метод unescape существует в JavaScript, а уж где Вы его используете - Ваше дело
0
0 / 0 / 0
Регистрация: 26.08.2008
Сообщений: 53
13.09.2009, 18:20 10
session.codepage=65001 ?
0
0 / 0 / 0
Регистрация: 26.08.2008
Сообщений: 53
13.09.2009, 18:35 11
Имхо, для работы с XML лучше использовать юникод, проблем будет меньше
0
Maksim
14.09.2009, 06:30 12
Дело в том, что на стороне сервера я использую Cache Object Script (CSP страницы), которые отказываются принимать данные в Unicode или UTF-8. Само собой методов JavaScript на этих страницах вызвать я тоже не могу...

Эти переменные в виде URLencoded строк он сразу декодирует, причем декодирует только вставки '%u0'. То есть строка становится нечитаемой...

Поэтому подошла бы такая кодировка, в какую кодирует браузер строки при submit'е стандартной формы. 'Привет!' -> '%CF%F0%E8%E2%E5%F2%21'

А метод escape кодирует в Unicode.
Методы encodeURI и encodeURIComponent кодируют в UTF-8.
0 / 0 / 0
Регистрация: 26.08.2008
Сообщений: 53
14.09.2009, 13:38 13
Имхо, придется все таки решать проблему на стороне сервера:
MSDN Q282287
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2009, 13:38

Как сохранить русский текст?
Привет всем. В SQL Server 2005 не могу сохранить русский текст, вместо него сохраняется вопрос....

Как вывести на экран русский текст?
program Hello; uses crt; begin clrscr; writeln('привет'); { writeln('hello world'); } ...

Как вывести русский текст в консоль?
Что-то я совсем запутался с кодировкой в python, версия стоит 2.7.4 пытаюсь выводить в консоль...

Как передать в функцию русский текст
Есть такие функции Append ( const uint16 * aText,int32 aLength = -1 ) Append ( const char *...

Как вывести русский текст в ассемблере?
org 100h begin: mov cl, Label1: mov ah,9 mov dx,offset String int 21h ...

Как заменить русский текст в файле?
Мне нужно написать функцию,которая заменяет русский текст без учета регистра в файле.Типа void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.