我无法在as3中转义特殊字符.
trace( escape("who are ü?") );
返回谁%20are%20%uFFFD%3F
要么
trace( encodeURIComponent("who are ü?") );
返回谁%20are%20%EF%BF%BD%3F
而在javascript这个
alert( encodeURIComponent("who are ü?") );
返回谁%20are%20%C3%BC%3F
和
alert( escape("who are ü?") );
返回谁%20are%20%FC%3F
任何建议如何让as3返回转义转义特殊字符作为JavaScript?为什么as3明显窒息?
(这里有一个很好的参考:http://www.ultrashock.com/forums/actionscript/as3-escape-vs-as2-escape-122046.html)
看起来AS正在将字符串转义为UTF-16,而Javascript示例正在转义为UTF-8.escape
没有定义如何处理非ascii字符,因此从JavaScript 1.5开始就不推荐使用它.您应该使用该函数encodeURIComponent
,它被定义为转义为UTF-8 - 这应该在不同的实现中保持一致.如果您需要AS行为,我认为Javascript中没有本机功能,但您可以使用此处提供的功能.