像javascript那样在as3中转义字符

jed*_*ikb 2 javascript utf-8 actionscript-3

我无法在as3中转义特殊字符.

trace( escape("who are ü?") );
Run Code Online (Sandbox Code Playgroud)

返回谁%20are%20%uFFFD%3F

要么

trace( encodeURIComponent("who are ü?") );
Run Code Online (Sandbox Code Playgroud)

返回谁%20are%20%EF%BF%BD%3F

而在javascript这个

alert( encodeURIComponent("who are ü?") );
Run Code Online (Sandbox Code Playgroud)

返回谁%20are%20%C3%BC%3F

alert( escape("who are ü?") );
Run Code Online (Sandbox Code Playgroud)

返回谁%20are%20%FC%3F

任何建议如何让as3返回转义转义特殊字符作为JavaScript?为什么as3明显窒息?

(这里有一个很好的参考:http://www.ultrashock.com/forums/actionscript/as3-escape-vs-as2-escape-122046.html)

tro*_*skn 5

看起来AS正在将字符串转义为UTF-16,而Javascript示例正在转义为UTF-8.escape没有定义如何处理非ascii字符,因此从JavaScript 1.5开始就不推荐使用它.您应该使用该函数encodeURIComponent,它被定义为转义为UTF-8 - 这应该在不同的实现中保持一致.如果您需要AS行为,我认为Javascript中没有本机功能,但您可以使用此处提供的功能.