【问题标题】:Google Closure Compiler returning in different encoding?Google Closure Compiler 以不同的编码返回?
【发布时间】:2011-05-22 09:29:34
【问题描述】:

Google Closure Compiler 返回以下代码:

{"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 和其他一些东西代替了(我认为)等号。怎么了?

我的帖子变量是: “编译级别”:

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

Edit1:只有当我设置 'output_format' : 'text' 时,编码才会正确。

【问题讨论】:

    标签: javascript google-app-engine encoding character-encoding google-closure-compiler


    【解决方案1】:

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

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

    您如何处理输出以使其重要?如果您不想要 JSON 输出,您确实应该要求提供原始“文本”。

    【讨论】:

    • 好吧,原始文本 javascript 函数运行良好,但是以不同方式编码或未编码的东西会给出以下错误:SyntaxError: Unexpected token ILLEGAL
    • 这就是 Chrome 在各种情况下会为您提供的内容,例如带有换行符的字符串文字。给定您的示例字符串,我看不到它。
    • 好吧,我有:> eval('k \u003d 3') ; > k == 3 ;它产生 true,但是 > k \u003d 4 SyntaxError: Unexpected token ILLEGAL
    • 是的,\u003D 是字符串文字中的转义;你不能把它放在字符串文字之外。但是你不会参与 JSON 字符串和 eval 它,你必须 JSON.parseeval 整个事情并从结果中提取你需要的数据。
    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2014-10-15
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多