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

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

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

Регистрация: Mar 2013
Сообщений: 157
Attention Проблемы с кодировкой при передаче

Здравствуйте

Подскажите, что я делаю не правильно. Имеется класс, с рядом методов - работает, но при использовании методов, я принимаю не корректно информацию (русский текст). Данные отправляются в кодировке UTF-8. Я пытался уже разными способами преобразовать текст, но пока мои попытки не увенчались успехом.

Код AS3:
	public class clBuildingList {
 
		public function  clBuildingList(category:int, page:int) {
 
			var myData:URLVariables = new URLVariables();
				myData.userID = CDoc.userID;
				myData.cat = category;
				myData.page = page;		
 
			var myRequest:URLRequest = new URLRequest(Settings._url+"building_list.php");
				myRequest.data = myData; //указываем данные
				myRequest.method = URLRequestMethod.POST; //метод передачи
 
				var loader:URLLoader = new URLLoader();
				loader.dataFormat = URLLoaderDataFormat.VARIABLES;
 
			try
			{
				loader.addEventListener(Event.COMPLETE, completeHandler);
				loader.load(myRequest);
			}
			catch (error:Error)
			{
				trace('Error: unable to load the buildingList.');
			}
 
		}
 
 
		private function completeHandler(evt:Event) {	
 
				trace("COMLETE LOAD...");
				var decoded:String = decodeURI(unescape(evt.target.data));
 
				var variables:URLVariables = new URLVariables(decoded);
 
		//		var bytes:ByteArray = new ByteArray();
		//		bytes.writeMultiByte(variables.name1, "utf-8");
		//		bytes.position = 0;
 
 
 
				//запоминаем количество страниц
				Settings.numPages = variables.numpage;
 
				if (variables.id1 != null && variables.id1 != "")
				{				
					//trace(bytes.readMultiByte(bytes.bytesAvailable, "windows-1251"));				
 
                    			trace(variables.name1);
				}
 
 
		}
 
 
 
	}

участок php кода. Пример передачи данных

PHP код:
 echo iconv('CP1251''UTF-8'"numpage=$max&id1=".$clear_list[0]['id']."&name1=".$clear_list[0]['name']); 
Результат моей работы: ÊÃ*ôå
Хотя должен быть русский текст.

Подскажите как решить проблему.

Старый 07.06.2013, 16:30
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Variables имеют urlencode формат.
PHP код:
echo "numpage=$max&id1=".urlencode($clear_list[0]['id'])."&name1=".urlencode($clear_list[0]['name']); 
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 07.06.2013, 17:10
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 3  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 157
Спасибо за совет!
Применил, но проблема не решилась. Или необходимо данный текст перекодировать еще в какой то формат?

Старый 07.06.2013, 17:24
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Да не должно, может в utf8 перед urlencode конвертить. А какую строку оно выдаёт? Если не через флеш смотреть или как строку загрузить, а не как переменные.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 07.06.2013, 17:28
art_maestro вне форума Посмотреть профиль Отправить личное сообщение для art_maestro Найти все сообщения от art_maestro
  № 5  
Ответить с цитированием
art_maestro

Регистрация: Mar 2013
Сообщений: 157
Проблема решилась благодаря замене


Код AS3:
var decoded:String = decodeURI(unescape(evt.target.data));
на

Код AS3:
var decoded:String = decodeURI(evt.target.data);


Последний раз редактировалось art_maestro; 07.06.2013 в 18:01.
Создать новую тему Ответ Часовой пояс GMT +4, время: 16:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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