Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Кодировка русского текста и передача его на сервер. (http://www.flasher.ru/forum/showthread.php?t=127459)

MedvedevA 14.07.2009 17:31

Кодировка русского текста и передача его на сервер.
 
У меня в проекте передача массивов данных между флешкой и PHP происходит следующим образом:
Код AS3:

 
 <mx:HTTPService id="httpData" url="agents/a_paymentsXML.php" useProxy="false" method="POST" resultFormat="text"        result="resultRequest(event)">   
</mx:HTTPService>


Фунция отправки данных из Flex(формируем массив и отправляем):
Код AS3:

private function saveData():void
{       
      httpData.request.output_converParams_array=new ArrayCollection();
      for(var j:int=0; j<output_data_table.dataProvider.length; j++){
httpData.request.output_converParams_array.addItem(output_data_table.dataProvider[j].converParams);
 
      }
      httpData.send(); // послать данные
}

В PHP массив разбирается так:
PHP код:

$output_converParams_array=explode(",",$HTTP_POST_VARS["output_converParams_array"]); 

Столкнулся с такой проблемой, если в массиве появляется запитая тогда в PHP при разборе все разваливается.

Стал решать следующим образом сделал кодирование перед отправкой во флексе(encodeURI или escape):

Код AS3:

 
private function saveData():void
{       
          httpData.request.output_converParams_array=new ArrayCollection();
          for(var j:int=0; j<output_data_table.dataProvider.length; j++){ 
  httpData.request.output_converParams_array.addItem(encodeURI(output_data_table.dataProvider[j].converParams));
        }
          httpData.send();
}

Когда на стороне PHP делаю раскодирование функциями rawurldecode или urldecode=> Не может раскодировать. Как справится с этой проблемой?

PHP код:

$output_converParams_array=explode(",",$HTTP_POST_VARS["output_converParams_array"]);
$log->write("w1=".rawurldecode($output_converParams_array[0]));//Выводит РІР°РІР°РІ
$log->write("w2=".urldecode($output_converParams_array[0]));//Выводит РІР°РІР°РІ 

Добавлено через 2 часа 55 минут
Люди помогите, как закодировать русский текст в Flex и раскодировать в PHP.
Кроме функции encodeURI или escape что-небудь ещё есть???? Какую-небудь наводку!

wvxvw 14.07.2009 21:41

А при чем тут русский язык?
во флеше вместо запятых в качестве разделителя используйте какой-нибудь другой редко встречающийся символ, а лучше - последовательность, например \u263А\u263А (2 смайла) - точно не ошибетесь.

MedvedevA 15.07.2009 15:57

Цитата:

Сообщение от wvxvw (Сообщение 835462)
А при чем тут русский язык?
во флеше вместо запятых в качестве разделителя используйте какой-нибудь другой редко встречающийся символ, а лучше - последовательность, например \u263А\u263А (2 смайла) - точно не ошибетесь.

Я пытаюсь сформировать строку с этим смайликом, но она обрезается почему-то:
Alert.show("w1"+String.fromCharCode("\u263А")+"w2",'Ошибка');//Выводит w1.
В чем дело?!!!

Добавлено через 54 минуты
Если я всталяю юникод редкого символа как разделитель тогда в PHP не передается коретно(квадратик вместо него приходит).
Может шрифт надо?!!!(пальцем в небо тыкаю).

Ну а если как разделитель передать hml-код смайлика ☺ тогда разбирается нормально.
Ну это код как то через жопу написанный..... Как все таки правильно передавать?

wvxvw 15.07.2009 17:13

А с чего вы решили, что Alert.show покажет вам этот символ, если вы шрифт для этого не встроили? :/
Как вы узнали, что пришел квадратик? По коду символа надо проверять - никто ж не знает, какой шрифт вы используете для того, чтобы результат распечатать...


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

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