PHP代碼中,用exec
執(zhí)行nodejs命令
nodejs接受到的中文是亂碼
所有操作,都是用CLI模式運行的(即命令行下運行)
已執(zhí)行chcp 65001
切換代碼頁,且PHP和NodeJS文件都是UTF8編碼(無BOM頭)
命令行直接運行NodeJS命令,接受到的值是正常的
命令行運行PHP,NodeJS接收到的中文字符為亂碼
Windows 10 (1703 OS內(nèi)部版本15063.296)
PHP 5.5.7 (cli)
Zend Engine v2.5.0
node v6.9.2
命令行:cmd V10.0.15063
測試腳本1:test.php (php腳本)
測試腳本2:test.js (nodejs腳本)
其他可能影響的因素:
test.js使用了yargs
包,用于接收命令行傳參
由于npm
長期連不上,使用了淘寶源cnpm
命令替換了npm
命令
<?php
print(exec('node test.js -t "紅掌撥清波"'));
?>
'use strict';
const yargs = require('yargs');
var argv = yargs
.options({
't': {
alias: 'text',
demandOption: true,
default: '',
describe: 'Source text.',
type: 'string'
}
})
.argv;
console.log(argv.t);
打開cmd.exe
,輸入chcp 65001
,切換編碼到UTF-8
。
先運行test.js
,傳入?yún)?shù)-t "白毛浮綠水"
,正常
在運行test.php
,輸出亂碼
請問這個情況是什么原因?qū)е碌?,?yīng)該如何處理,謝謝了
走同樣的路,發(fā)現(xiàn)不同的人生