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

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

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

Регистрация: Oct 2007
Адрес: Moscow
Сообщений: 45
Отправить сообщение для chatman с помощью ICQ
По умолчанию Помогите перекодировать URLVariables

Когда формирую запрос на сервер типа URLVariables, он мне кодирует в rawurl-формат (типа %34%20). Проблема в том, что кириллица кодируется в UTF-8 вид и весит два байта. Мой сервер поддерживает cp1251. Вопрос: как сделать так, чтобы URLVariables передавал для cp1251, а не utf8?

Старый 10.12.2009, 21:05
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Проще всего Вам, если Вы флешер, озадачить этим серверных программистов - пусть перекодируют полученный запрос из UTF-8 во что надо, делается это в 2 строчки
__________________
...вселенская грусть

Старый 10.12.2009, 22:08
bicubic_bublic вне форума Посмотреть профиль Найти все сообщения от bicubic_bublic
  № 3  
Ответить с цитированием
bicubic_bublic
Banned
[+4 25.09.09]
[+1 12.11.09]
[+4 12.12.09]

Регистрация: Sep 2009
Сообщений: 231
можно построчно перевести URLVariables в строку-запрос с нужной вам кодировкой с помощью ByteArray методов writeMultiByte(строка, 'windows-1251') и readUnsignedByte();

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

Регистрация: Oct 2007
Адрес: Moscow
Сообщений: 45
Отправить сообщение для chatman с помощью ICQ
Цитата:
Сообщение от bicubic_bublic Посмотреть сообщение
можно построчно перевести URLVariables в строку-запрос с нужной вам кодировкой с помощью ByteArray методов writeMultiByte(строка, 'windows-1251') и readUnsignedByte();
Попробовал так. Пишет "End of file was encountered." на readUnsignedByte(). Не может считать массив этим методом.

Код такой:

Код AS3:
      var ba:ByteArray;
      if (options.params) {
        for (var i: String in options.params) {
		  ba = new ByteArray();
		  ba.writeMultiByte(options.params[i], "windows-1251");
                  // request_params[i] = options.params[i];
		  request_params[i] = ba.readUnsignedByte()
        }
      }
В массиве каждый элемент преобразовываю в cp1251 перед записью в URLVariables. Закоментировал метод readUnsignedByte, попробовал метод toString(); - вроде уже в кодировке 1251. А этот гад всё равно их в UrlEncoded UTF8 кодирует. Уже ума не приложу, что делать.

Старый 11.12.2009, 15:22
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Очевидно position надо сбрасывать на ноль.

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

Регистрация: Oct 2007
Адрес: Moscow
Сообщений: 45
Отправить сообщение для chatman с помощью ICQ
Цитата:
Сообщение от etc Посмотреть сообщение
Очевидно position надо сбрасывать на ноль.
Точно! Спасибо!

Теперь не понятно, как передать % без экранирования... Как вообще передать запрос в URLVariables без экранирования?

Добавлено через 3 часа 35 минут
Всё. Проблема решилась путём преобразования всех переменных и их значений в string и ручным экранированием.

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

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

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


 


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


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