亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

node.js - PHP使用exec執(zhí)行nodejs時,傳入JS的中文字符是亂碼
怪我咯
怪我咯 2017-06-30 09:53:51
0
1
1198

現(xiàn)有問題

  1. PHP代碼中,用exec執(zhí)行nodejs命令

  2. nodejs接受到的中文是亂碼

  3. 所有操作,都是用CLI模式運行的(即命令行下運行)

  4. 已執(zhí)行chcp 65001切換代碼頁,且PHP和NodeJS文件都是UTF8編碼(無BOM頭)

  5. 命令行直接運行NodeJS命令,接受到的值是正常的

  6. 命令行運行PHP,NodeJS接收到的中文字符為亂碼

開發(fā)環(huán)境

  1. Windows 10 (1703 OS內(nèi)部版本15063.296)

  2. PHP 5.5.7 (cli)

  3. Zend Engine v2.5.0

  4. node v6.9.2

  5. 命令行:cmd V10.0.15063

  6. 測試腳本1:test.php (php腳本)

  7. 測試腳本2:test.js (nodejs腳本)

  8. 其他可能影響的因素:

    • test.js使用了yargs包,用于接收命令行傳參

    • 由于npm長期連不上,使用了淘寶源cnpm命令替換了npm命令

錯誤復(fù)現(xiàn)

test.php

<?php
print(exec('node test.js -t "紅掌撥清波"'));
?>

test.js

'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);

復(fù)現(xiàn)流程

  • 打開cmd.exe,輸入chcp 65001,切換編碼到UTF-8。


  • 先運行test.js,傳入?yún)?shù)-t "白毛浮綠水",正常

  • 在運行test.php,輸出亂碼

  • 請問這個情況是什么原因?qū)е碌?,?yīng)該如何處理,謝謝了

怪我咯
怪我咯

走同樣的路,發(fā)現(xiàn)不同的人生

全部回復(fù)(1)
迷茫

windows cmd默認(rèn)是gbk編碼吧,所以傳utf8會亂碼

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板