当从 Grunt 传递到 CasperJS 时,字符串被破坏
String gets mangled when passed from Grunt to CasperJS
我有一个 G运行t 文件,可以使用泰语字符串从命令行执行。
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();
});
但是现在回显它让我一团糟:
à¸<99>ีà¹<88>à¸<84>ืà¸à¸<81>ารà¸<97>à¸<94>สà¸à¸<9a>
情节变得复杂:我运行通过 AWS 实例上的用户数据从 cloud-init 获取这一切。
但是,当我通过 shell 运行 相同的 G运行t 命令时,脚本工作正常。 - 有什么想法吗?
想通了。
从 Grunt 进入 Casper 的字节编码发生了变化。
运行 他们通过 utf8to16
从 http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt
一切顺利。
我有一个 G运行t 文件,可以使用泰语字符串从命令行执行。
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();
});
但是现在回显它让我一团糟:
à¸<99>ีà¹<88>à¸<84>ืà¸à¸<81>ารà¸<97>à¸<94>สà¸à¸<9a>
情节变得复杂:我运行通过 AWS 实例上的用户数据从 cloud-init 获取这一切。 但是,当我通过 shell 运行 相同的 G运行t 命令时,脚本工作正常。 - 有什么想法吗?
想通了。
从 Grunt 进入 Casper 的字节编码发生了变化。
运行 他们通过 utf8to16
从 http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt
一切顺利。