node.js - PHP が exec を使用して nodejs を実行すると、JS に渡された中国語の文字が文字化けする
怪我咯
怪我咯 2017-06-30 09:53:51
0
1
1058

既存の問題

  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

リーリー

複製プロセス

  • cmd.exe

    を開き、「chcp 65001」と入力して、エンコードを UTF-8 に切り替えます。


#最初に
    test.js
  • を実行し、パラメーター

    -t "白髪と緑の水"、normal# を渡します。

##test.php
    を実行すると文字化けが出力されます

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

怪我咯
怪我咯

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

全員に返信(1)
迷茫

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート