Dans le code PHP, utilisezexecpour exécuter la commande nodejs
Les caractères chinois reçus par nodejs sont des caractères tronqués
Toutes les opérations sont exécutées en mode CLI (c'est-à-dire exécutées sous la ligne de commande)
Exécutéchcp 65001Page de codes du commutateur, et les fichiers PHP et NodeJS sont codés en UTF8 (pas d'en-tête de nomenclature)
Exécutez la commande NodeJS directement depuis la ligne de commande et la valeur reçue est normale
Lors de l'exécution de PHP en ligne de commande, les caractères chinois reçus par NodeJS sont tronqués
Windows 10 (système d'exploitation 1703, version 15063.296)
PHP 5.5.7 (cli)
Zend Engine v2.5.0
nœud v6.9.2
Ligne de commande : cmd V10.0.15063
Script de test 1 : test.php (script php)
Script de test 2 : test.js (script nodejs)
Autres facteurs pouvant affecter :
test.js utilise le packageyargspour recevoir les paramètres de ligne de commande
En raison denpm长期连不上,使用了淘宝源cnpm命令替换了npmcommande
'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);
Ouvrezcmd.exe, saisissezcmd.exe,输入chcp 65001,切换编码到UTF-8et changez l'encodage enUTF-8.


Courez en premiertest.js,传入参数-t "白毛浮绿水", normal

est en cours d'exécutiontest.php, affichant un code tronqué

S'il vous plaît, dites-moi ce qui a causé cette situation et comment y faire face. Merci
Windows cmd est par défaut l'encodage gbk, donc la transmission de utf8 sera tronquée