2

谷歌关闭编译器返回以下代码:Google Closure编译器以不同的编码返回?

{"compiledCode":"vaporize\u003dfunction(){var a\u003d12+Math.random()*10;a\u003e9\u0026\u0026console.log(\"wow, k is bigger than j\");return 9+3*a};compilation_level\u003dADVANCED_OPTIMIZATIONS;vaporize\u003dfunction(){var a\u003d12+Math.random()*10;a\u003e9\u0026\u0026console.log(\"wow, k is bigger than j\");return 9+3*a};"} 

它取代了(我认为)与\ u003d和一些其他的东西等号。怎么了 ?

我交变量是: 'compilation_level':

'ADVANCED_OPTIMIZATIONS', 
'output_format': 'json', 
'warning_level' : 'QUIET', 
'output_info' : 'compiled_code', 
'js_code' : code 

EDIT1:只有当我设置 'OUTPUT_FORMAT': '文本' 的编码出来的权利。

回答

1

It replaced (I think) equal signs with \u003d and some other stuff. What's wrong ?

没有。 "\u003d"是包含等号字符的字符串的有效JavaScript(或此处为JSON)表示;它完全等同于"="

你在做什么与输出,使之重要?如果你不想要JSON输出,你应该要求原始的'文本'。

+0

那么,原文JavaScript函数运行良好,但出来的事情编码或不以不同的方式编码或不以不同的方式给出了以下错误:SyntaxError:意外的令牌非法 – 2011-05-22 21:36:07

+0

这就是Chrome会在各种情况下给你像字符串文字与一个换行符。它不会出现给我你的例子字符串。 – bobince 2011-05-23 21:15:39

+0

那么,我有:> eval('k \ u003d 3'); > k == 3;并且它会生成true,但是>> k> SyntaxError:意外的标记ILLEGAL – 2011-05-23 23:31:12