Dans le code PHP, utilisezexec
pour 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 65001
Page 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 packageyargs
pour recevoir les paramètres de ligne de commande
En raison denpm
长期连不上,使用了淘宝源cnpm
命令替换了npm
commande
'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-8
et 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