FlashでAIRを作成していてボタンを押したらツイッターに投稿させようと
思っていたらAS3の罠にはまった。

解決までにかなりの時間をかけてしまったので今後のためにメモひらめき電球

どこで問題が発生しかというと、URLエンコード!
いつも通り escape();でエンコードして使えばOKって思って
動作確認してみたらツイッターに投稿できない。
えーーー。なんかおかしい。

ってことでデコードしてみたら元に戻せない。
なんで???
調べたら神様がいました。

[AS3] URLエンコード
2バイト文字はUTF-8でエンコードしないといけないみたいですね。
そして、escapeはActionScript3.0とActionScript2.0、ActionScript1.0で
動作が違うみたいです。
ActionScript 2.0/1.0のescape()関数は、2バイト文字をUTF-8でエンコードしていました。ActionScript 3.0で文字列をUTF-8でエンコードするには、flash.utils.escapeMultiByte()関数を用います[*1]。
import flash.utils.escapeMultiByte;
var _str:String = escapeMultiByte("F-siteセミナー");
trace(_str); // 出力: F%2Dsite%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC

デコードは、flash.utils.unescapeMultiByte()関数を使います。

無事できました。
ありがとうございます!