Как urlencode Actionscript ByteArray - PullRequest
       20

Как urlencode Actionscript ByteArray

1 голос
/ 13 сентября 2011

Мне нужно закачать двоичные данные в кодировке урблр.

это то, что я сейчас пытаюсь:

            baseString.params = 'data[0]=' + URLEncoding.encode(byte.toString()).replace('~','%257E');

Есть идеи?

1 Ответ

0 голосов
/ 15 сентября 2011

Хорошо, во-первых, похоже, что с вашей кодировкой URL происходят некоторые сумасшедшие вещи.Пример, который вы разместили выше, кажется, имеет двойную кодировку:

>>> x = unescape("%25C3%25BF%25C3%2598%25C3")
>>> x
"%C3%BF%C3%98%C3"
>>> unescape(x)
"ÿÃÃ"

Во-вторых, вы не должны использовать ByteArray.toString(), если ByteArray содержит двоичные данные.Вместо этого, если я правильно помню, вы должны использовать ba.readMultiByte(ba.bytesAvailable, "latin1"), который будет возвращать строку, содержащую необработанные байты.

В-третьих, я чувствую, что ваш класс URLEncoding является подозрительным.Вместо этого вы можете просто использовать встроенные функции escapeunescape):

>>> escape("\12")
"%0A"
...