Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.07.2008, 14:56
Alex_B вне форума Посмотреть профиль Отправить личное сообщение для Alex_B Посетить домашнюю страницу Alex_B Найти все сообщения от Alex_B
  № 1  
Ответить с цитированием
Alex_B

Регистрация: Sep 2007
Сообщений: 76
По умолчанию POST - на сервер приходят крикозяблы

Вот так ким образом отправляю HTTP POST запрос на сервер:

Код:
var params:URLVariables = new URLVariables();
params.alt = "русские буквы";

var request:URLRequest = new URLRequest("my.aspx");
request.method = URLRequestMethod.POST;
request.data = params;
На сервер приходят крикозяблы, по типу
Тестовое описание


Что делать, где ошибка?
(В SOAP сервисе никаих проблем не было).
__________________
timeMarker.org

Старый 08.07.2008, 15:34
Alex_B вне форума Посмотреть профиль Отправить личное сообщение для Alex_B Посетить домашнюю страницу Alex_B Найти все сообщения от Alex_B
  № 2  
Ответить с цитированием
Alex_B

Регистрация: Sep 2007
Сообщений: 76
Вот такое решение

Код:
var header:URLRequestHeader = new URLRequestHeader("charset", "utf-8");
request.requestHeaders.push(header);
__________________
timeMarker.org

Старый 08.07.2008, 15:35
Alex_B вне форума Посмотреть профиль Отправить личное сообщение для Alex_B Посетить домашнюю страницу Alex_B Найти все сообщения от Alex_B
  № 3  
Ответить с цитированием
Alex_B

Регистрация: Sep 2007
Сообщений: 76
Вот такое решение

Код:
var header:URLRequestHeader = new URLRequestHeader("charset", "utf-8");
request.requestHeaders.push(header);
__________________
timeMarker.org

Старый 08.07.2008, 17:00
Alex_B вне форума Посмотреть профиль Отправить личное сообщение для Alex_B Посетить домашнюю страницу Alex_B Найти все сообщения от Alex_B
  № 4  
Ответить с цитированием
Alex_B

Регистрация: Sep 2007
Сообщений: 76
Ошибся - не работает так
__________________
timeMarker.org

Старый 15.07.2008, 16:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
С АСП не могу посоветовать... народ на работу подтянется - спрошу =)
Но, очень похожие проблемы есть с ПХП, думаю, что логика и решение должны быть где-то похожа...
Вобщем, "крикозябры", которые ты видишь, это УТФ-8 текст, только прочитаный в другую кодировку, скорее всего ИСО англоязычный. Объясню в общих чертах разницу:
ИСО, как и другие чисто АСКИИ кодировки используют 1 байт для записи символа (соответственно, возможно всего 256 разных символов). УТФ-8, в отличие от остальных юникодных кодировок записывает символы соответствующие первым 256 АСКИИ символам используя 1 байт (т.е. ИСО и УТФ-8 латиница + цифры + знаки препинания + командные символы будут выглядеть одинаково), а вот для записи иноязычных символов, например, кириллицы, УТФ-8 использует 2 байта для символа. Т.е. к примеру, кирилличная прописная "А" == 0х04 + 0х10 (в УТФ-8) а в АСКИИ эти 2 байта сформируют 2 символа, оба нечитаемые.
Соответственно, нужно порыться в документации и найти что-то, что может либо прочитать содержимое ПОСТ в нужной кодировке, либо заставить систему работать с юникодами (т.е. все файлы надо будет пересохранить как УТФ-8, СКуэЛ настроить так, чтобы тоже понимал УТФ-8 и т.д.), либо во Флеше перед отсылкой конвертировать текст в какую-нибудь кирилличную кодировку, котороя будет воспринята АСП, больше всего шансов, что он использует windows-1252.

О, а вот и народ с обеда подтянулся =) Вот, что говорят :
Код:
System.Text.ASCIIEncoding.UTF8.GetString("some string");
__________________
Hell is the possibility of sanity

Старый 22.07.2008, 12:27
Alex_B вне форума Посмотреть профиль Отправить личное сообщение для Alex_B Посетить домашнюю страницу Alex_B Найти все сообщения от Alex_B
  № 6  
Ответить с цитированием
Alex_B

Регистрация: Sep 2007
Сообщений: 76
wvxvw, спасибо.

Сейчас на сервере вот такое использую:

Код:
private void _AjaxDecodeStr(ref string ss)
{
    byte[] b1 = Encoding.Default.GetBytes(ss);

    ss = "";
    foreach (byte b in b1)
    {
        ss += "%" + b.ToString("X2");
    }

    ss = HttpUtility.UrlDecode(ss);
}
__________________
timeMarker.org

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.