検索

ホームページ  >  に質問  >  本文

node.js - PHP が exec を使用して nodejs を実行すると、JS に渡された中国語の文字が文字化けする

既存の問題

  1. PHP コードでは、exec を使用して、nodejs コマンドを実行します

  2. nodejsが受け取る中国語が文字化けする

  3. すべての操作は CLI モードで実行されます (つまり、コマンド ラインで実行されます)

  4. 実行されましたchcp 65001コード ページを切り替え、PHP および NodeJS ファイルは UTF8 でエンコードされます (BOM ヘッダーなし)

  5. コマンド ラインから NodeJS コマンドを直接実行すると、受信した値は正常です。

  6. コマンドラインで PHP を実行すると、NodeJS が受信した中国語の文字が文字化けします

###開発環境###

    Windows 10 (1703 OS ビルド 15063.296)
  1. PHP 5.5.7 (cli)
  2. Zend エンジン v2.5.0
  3. ノード v6.9.2
  4. コマンドライン: cmd V10.0.15063
  5. テスト スクリプト 1: test.php (php スクリプト)
  6. テスト スクリプト 2: test.js (nodejs スクリプト)
  7. 影響を与える可能性のあるその他の要因:
    • test.js は
    • yargs

      パッケージを使用してコマンド ライン パラメーターを受け取ります

    • npm

      が長時間接続できなかったため、タオバオ ソースの cnpm コマンドを使用して npm コマンドを置き換えました。

  8. エラー再発

test.php

リーリー

test.js

リーリー

複製プロセス


#最初に

##test.php

この状況の原因と対処方法をお伺いしてもよろしいでしょうか?ありがとうございます

怪我咯怪我咯2762日前1096

全員に返信(1)返信します

  • 迷茫

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

    Windows cmd のデフォルトは gbk エンコーディングであるため、utf8 の送信は文字化けします

    返事
    0
  • キャンセル返事