Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема при передаче русских символов / 8 сообщений из 8, страница 1 из 1
27.04.2006, 14:46
    #33694655
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
В web.config глобализация настроена верно и все работает на ура с русскими данными,
но в случае когда я с клиента посылаю строку из javascript

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    var xmlSOAP = new ActiveXObject("MSXML2.DOMDocument");
    xmlSOAP.loadXML('<?xml version="1.0" encoding="utf-16" ?>'+
    '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
        '<soap:Body>'+
            '<UploadData xmlns="http://tempuri.org/">'+
                '<fileName>'+this.fileName+'</fileName>'+
                '<fileOwner>'+this.Owner+'</fileOwner>'+
                '<file></file>'+
            '</UploadData>'+
        '</soap:Body>'+
    '</soap:Envelope>');
    

    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.onreadystatechange = HandleStateChange;
    xmlhttp.open("POST",appURL+"ws/DoSomsing.asmx",true);  
    xmlhttp.setRequestHeader("SOAPAction", "http://tempuri.org/DoSomsing");
    xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xmlhttp.send(xmlSOAP);

в вебсевисе в fileName вижу вместо русских символов абракадабру — как быть?
...
Рейтинг: 0 / 0
27.04.2006, 22:04
    #33695920
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
SOAP пакету прописано utf-16, а передается как utf-8.
Что в web.config globalization?
...
Рейтинг: 0 / 0
27.04.2006, 23:12
    #33695969
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
Код: plaintext
<globalization fileEncoding="windows-1251" requestEncoding="windows-1251" responseEncoding="windows-1251" culture="ru-RU" uiCulture="ru-RU" />

HumpySOAP пакету прописано utf-16, а передается как utf-8.
Что в web.config globalization?
...
Рейтинг: 0 / 0
27.04.2006, 23:19
    #33695975
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
Привел все кодировки в Javascript к одной кодировке (пробовал и windows-1251)
Что отсылается:

Код: plaintext
Полис Украина Бланк (ИСПР).doc

Вот что на сервере получаю:

Код: plaintext
%u041F%u043E%u043B%u0438%u0441% 20 %u0423%u043A%u0440%u0430%u0438%u043D%u0430% 20 %u0411%u043B%u0430%u043D%u043A% 20 % 28 %u0418%u0421%u041F%u0420% 29 .doc
...
Рейтинг: 0 / 0
27.04.2006, 23:44
    #33695993
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
Ага... Если маразм меня не подводит, я на клиенте использовал escape, а на сервере - HttpUtility.UrlDecode. Попробуй, если не пойдет, посмотрю точнее когда доберусь до исходников.
...
Рейтинг: 0 / 0
28.04.2006, 01:05
    #33696066
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
После HttpUtility.UrlDecode получил:
Полис Украина Бланк (ИСПР).doc

при разных кодировках(utf-8, utf-16, windows-1251) на клиенте с использованием escape()

HumpyАга... Если маразм меня не подводит, я на клиенте использовал escape, а на сервере - HttpUtility.UrlDecode. Попробуй, если не пойдет, посмотрю точнее когда доберусь до исходников.
...
Рейтинг: 0 / 0
28.04.2006, 02:57
    #33696101
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
Это точно не работает?
1. <globalization fileEncoding="windows-1251" requestEncoding="windows-1251" responseEncoding="windows-1251" culture="ru-RU" uiCulture="ru-RU" />

2. aspx сохранена в windows-1251 (в VS меню File - Advanced Save Options...). Не суть, но все же.

3.
...
xmlSOAP.loadXML('<?xml version="1.0" encoding=" windows-1251 " ?>'+
...
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset= windows-1251 ");


Потому как "Полис Украина Бланк (ИСПР).doc" - это unicode побайтно перекинутый в ansi, а "%u041F%u043E%u043B%u0438%u0441%20%u0423%u043A%u0440%u0430%u0438%u043D%u0430%20%u0411%u043B%u0430%u043D%u043A%20%28%u0418%u0421%u041F%u0420%29.doc" - нормальная юникодная строка, которая после UrlDecode должна стать "Полис Украина Бланк (ИСПР).doc". Скорее всего, ты, меняя кодировки, пропустил нужную комбинацию :) Попробуй так.
...
Рейтинг: 0 / 0
28.04.2006, 13:23
    #33697279
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при передаче русских символов
Спасибо - разобрался!

HumpyЭто точно не работает?
1. <globalization fileEncoding="windows-1251" requestEncoding="windows-1251" responseEncoding="windows-1251" culture="ru-RU" uiCulture="ru-RU" />

2. aspx сохранена в windows-1251 (в VS меню File - Advanced Save Options...). Не суть, но все же.

3.
...
xmlSOAP.loadXML('<?xml version="1.0" encoding=" windows-1251 " ?>'+
...
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset= windows-1251 ");


Потому как "Полис Украина Бланк (ИСПР).doc" - это unicode побайтно перекинутый в ansi, а "%u041F%u043E%u043B%u0438%u0441%20%u0423%u043A%u0440%u0430%u0438%u043D%u0430%20%u0411%u043B%u0430%u043D%u043A%20%28%u0418%u0421%u041F%u0420%29.doc" - нормальная юникодная строка, которая после UrlDecode должна стать "Полис Украина Бланк (ИСПР).doc". Скорее всего, ты, меняя кодировки, пропустил нужную комбинацию :) Попробуй так.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема при передаче русских символов / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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