【问题标题】:How to urlencode an Actionscript ByteArray如何对 Actionscript ByteArray 进行 urlencode
【发布时间】:2011-09-13 17:02:31
【问题描述】:

我需要上传 urlencoded 二进制数据到 tumblr。

这是我目前正在尝试的:

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

有什么想法吗?

【问题讨论】:

  • 这有什么问题?看起来它应该可以工作......
  • 我收到来自 Tumblr 的“未授权”回复。
  • 您确定是您的 URL 编码问题而不是其他问题吗?
  • 是的,我用 baseString.params = 'body=test'; 替换了上面的行这是文本帖子所需的字段,并且效果很好。
  • 你能把编码后的字符串贴出来吗?另外,'data[0]' 似乎有点奇怪——你确定这是正确的参数名称吗?另外,unicode可以与它有什么关系吗? (我不记得ByteArray.toString() 是如何处理的……)

标签: actionscript-3 oauth binary bytearray


【解决方案1】:

好的,首先,您的 url 编码似乎发生了一些疯狂的事情。您在上面发布的示例似乎是双重编码的:

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

其次,如果ByteArray 包含二进制数据,则不应使用ByteArray.toString()。相反,如果我没记错的话,您应该使用ba.readMultiByte(ba.bytesAvailable, "latin1"),它将返回一个包含原始字节的字符串。

第三,我觉得你的URLEncoding 班级是可疑的。相反,您可以只使用 escape(和 unescape)内置函数:

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

【讨论】:

  • 投反对票的人:您介意解释一下自己,以便我可以改进未来的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 2010-09-22
  • 2015-03-09
  • 1970-01-01
相关资源
最近更新 更多