cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Apabila PHP menggunakan exec untuk melaksanakan nodej, aksara Cina yang dihantar ke JS menjadi kacau.

Isu sedia ada

  1. Dalam kod PHP, gunakan exec untuk melaksanakan arahan nodejs

  2. Aksara Cina yang diterima oleh nodej adalah aksara bercelaru

  3. Semua operasi dijalankan dalam mod CLI (iaitu, dijalankan di bawah baris arahan)

  4. Dilaksanakanchcp 65001Tukar halaman kod, dan fail PHP dan NodeJS dikodkan UTF8 (tiada pengepala BOM)

  5. Jalankan arahan NodeJS terus dari baris arahan, dan nilai yang diterima adalah normal

  6. Apabila menjalankan PHP pada baris arahan, aksara Cina yang diterima oleh NodeJS adalah bercelaru

Persekitaran pembangunan

  1. Windows 10 (1703 OS Build 15063.296)

  2. PHP 5.5.7 (cli)

  3. Enjin Zend v2.5.0

  4. nod v6.9.2

  5. Baris arahan: cmd V10.0.15063

  6. Skrip ujian 1: test.php (skrip php)

  7. Skrip ujian 2: test.js (skrip nodejs)

  8. Faktor lain yang mungkin mempengaruhi:

    • test.js menggunakan pakej yargs untuk menerima parameter baris arahan

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

Ralat berulang

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

Proses pembiakan


怪我咯怪我咯2762 hari yang lalu1097

membalas semua(1)saya akan balas

  • 迷茫

    迷茫2017-06-30 09:55:51

    Windows cmd lalai kepada pengekodan gbk, jadi penghantaran utf8 akan bercelaru

    balas
    0
  • Batalbalas