node.js – Wenn PHP exec zum Ausführen von nodejs verwendet, werden die an JS übergebenen chinesischen Zeichen verstümmelt
怪我咯
怪我咯 2017-06-30 09:53:51
0
1
1050

Bestehende Probleme

  1. Verwenden Sie im PHP-Code exec, um den NodeJS-Befehl auszuführen

  2. Die von nodejs empfangenen chinesischen Zeichen sind verstümmelte Zeichen

  3. Alle Vorgänge werden im CLI-Modus ausgeführt (d. h. unter der Befehlszeile ausgeführt)

  4. Ausgeführtchcp 65001Codeseite wechseln und PHP- und NodeJS-Dateien sind UTF8-codiert (kein BOM-Header)

  5. Führen Sie den NodeJS-Befehl direkt über die Befehlszeile aus und der empfangene Wert ist normal

  6. Beim Ausführen von PHP in der Befehlszeile sind die von NodeJS empfangenen chinesischen Zeichen verstümmelt

Entwicklungsumgebung

  1. Windows 10 (1703 OS Build 15063.296)

  2. PHP 5.5.7 (cli)

  3. Zend Engine v2.5.0

  4. Knoten v6.9.2

  5. Befehlszeile: cmd V10.0.15063

  6. Testskript 1: test.php (PHP-Skript)

  7. Testskript 2: test.js (nodejs-Skript)

  8. Andere Faktoren, die Einfluss haben können:

    • test.js verwendet das yargs-Paket, um Befehlszeilenparameter zu empfangen

    • Aufgrund npm长期连不上,使用了淘宝源cnpm命令替换了npmBestellung

Fehlerwiederholung

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

Reproduktionsprozess

  • Öffnen Sie cmd.exe, geben Sie cmd.exe,输入chcp 65001,切换编码到UTF-8 ein und ändern Sie die Kodierung auf UTF-8.


  • Zuerst laufentest.js,传入参数-t "白毛浮绿水", normal

  • läufttest.php und gibt verstümmelten Code aus

  • Bitte sagen Sie mir, was diese Situation verursacht hat und wie ich damit umgehen soll. Vielen Dank

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(1)
迷茫

windows cmd默认是gbk编码吧,所以传utf8会乱码

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage