Actionscript 3中的外部接口无法正确传递西里尔字母

| 我有一个Flash(flex actionscript项目),必须通过externalinterface将数据传递给cyrrilic中的javascript。但是,数据在javascript中以??????结尾而不是真正的西里尔字母 如何解决这个问题,使其显示为西里尔字母?
         var url:URLRequest = new URLRequest(\"javascript:allInfo(\'ядене\'); void(0);\");
         navigateToURL(url, \"_self\");
这是JS函数
function allInfo(info){
   alert(info);
}
谁能建议解决问题的方法?     
已邀请:
这很可能与编译时的编码有关。我测试了您提供的代码,它运行良好。确保编译器使用正确的编码解释文件。 如果要对其进行测试,可以简单地执行“ 2”,如果在Flash的控制台日志中看到奇怪的字符,则它是编译时的编码。至于解决方法,我对编译器的了解不足,无法为您指明正确的方向。 您要将数据传输到的页面的编码也可能有问题。如果您的Flash文件是使用UTF-8编译的,并且您的html页面带有其他可以解释您的问题的编码。在这种情况下,只需确保html和Flash文件的编码相同即可。 最后,解决大多数ExternalInterface错误的办法是在Flash端“ 3”保存数据,在Javascript端“ 4”保存数据。范例: 闪光灯:
var url:URLRequest = new URLRequest(\"javascript:allInfo(\'\" + escape(\"ядене\")  + \"\'); void(0);\");
flash.net.navigateToURL(url, \"_self\");
Javascript:
function allInfo(txt) {
    alert(\"Test : \" + unescape(txt));
}
    
完全适合您,对我来说效果很好。使用针对在Firefox 4中运行的Flash Player 11的Flex 4.5 SDK在Flash Builder 4.5中进行编译。如果仍然有问题,请发布测试SWF和完整的HTML页面。     
发送之前,请尝试将字符串转换为UTF-8。
// These may seem backwards, just remember it\'s a conversion situation.
function decode_utf8( s:String ):String {
  return decodeURIComponent( escape( s ) );
}

function encode_utf8( s:String ):String {
  return unescape( encodeURIComponent( s ) );
}
    

要回复问题请先登录注册