从Grunt传递到CasperJS时,字符串会被破坏

时间:2016-11-02 07:36:56

标签: javascript amazon-ec2 gruntjs casperjs cloud-init

我有一个Grunt文件,可以在命令行中使用泰语字符串执行。

  

grunt --data =นี่คือการทดสอบ

当我回显字符串时,我可以看到字符串是完整的:

  

นี่คือการทดสอบ

然后我用字符串

生成一个CasperJS脚本
grunt.util.spawn({
    cmd: '/usr/local/bin/casperjs',
    args: [
        '--engine=slimerjs',
        '--ssl-protocol=any',
        '--text=' + str,
        'test.js'
    ],
},
function(error, result, code)
{
    grunt.log.writeln(error + ' | ' + result + ' | ' + code);
    done();
});

但现在回应它让我一团糟:

  

A< 99>à¸μà¹< 88>一种与LT; 84>一种·AA< 81>²ãA< 97>一种与LT; 94>一种¸ªà¸à¸<图9a>

情节变粗:我正在通过AWS实例上的userdata从cloud-init运行这一切。 但是,当我通过shell运行相同的Grunt命令时,脚本运行正常。 - 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

想出来了。

字节编码改变从Grunt进入Casper。

http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt

通过utf8to16

一切都好。