Fri 19 Jan 2007
It is not a big discoverable problem for English development, AS1/2 escape() and AS3 escape() return the same result, but in double-byte characters, AS3 escape() now return the same format as JavaScript, if you want the old AS1/2 format, you have to use encodeURI() or encodeURIComponent().
ActionScript 1/2
var a:String = "香港:";
trace(escape(a)); // %E9%A6%99%E6%B8%AF%3A
trace(escape(a)); // %E9%A6%99%E6%B8%AF%3A
ActionScript 3
var a:String = "香港:";
trace(escape(a)); // %u9999%u6E2F%3A
trace(encodeURI(a)); // %E9%A6%99%E6%B8%AF:
trace(encodeURIComponent(a)); // %E9%A6%99%E6%B8%AF%3A
trace(escape(a)); // %u9999%u6E2F%3A
trace(encodeURI(a)); // %E9%A6%99%E6%B8%AF:
trace(encodeURIComponent(a)); // %E9%A6%99%E6%B8%AF%3A
JavaScript
var a = "香港:";
alert(escape(a)); // %u9999%u6E2F%3A
alert(encodeURI(a)); // %E9%A6%99%E6%B8%AF:
alert(encodeURIComponent(a)); // %E9%A6%99%E6%B8%AF%3A
alert(escape(a)); // %u9999%u6E2F%3A
alert(encodeURI(a)); // %E9%A6%99%E6%B8%AF:
alert(encodeURIComponent(a)); // %E9%A6%99%E6%B8%AF%3A

February 1st, 2007 at 9:08 pm
Thank you for sharing this tidbit of the information.
I encountered this difference in the behaviour of espace() function today between AS2 and AS3 and I just was looking for a solution for AS3.
And your instructions are great!