node.js - PHP가 exec를 사용하여 nodejs를 실행할 때 JS에 전달된 중국어 문자가 깨집니다.
怪我咯
怪我咯 2017-06-30 09:53:51
0
1
1091

기존 문제

  1. PHP 코드에서 exec를 사용하여 nodejs 명령을 실행하세요

  2. nodejs가 수신한 한자는 왜곡된 문자입니다

  3. 모든 작업은 CLI 모드에서 실행됩니다(즉, 명령줄에서 실행)

  4. 실행됨chcp 65001스위치 코드 페이지, PHP 및 NodeJS 파일은 UTF8로 인코딩됩니다(BOM 헤더 없음)

  5. 명령줄에서 직접 NodeJS 명령을 실행하면 수신된 값이 정상입니다

  6. 명령줄에서 PHP를 실행할 때 NodeJS에서 수신한 중국어 문자가 깨집니다

개발 환경

  1. Windows 10(1703 OS 빌드 15063.296)

  2. PHP 5.5.7(cli)

  3. Zend 엔진 v2.5.0

  4. 노드 v6.9.2

  5. 명령줄: cmd V10.0.15063

  6. 테스트 스크립트 1: test.php (php 스크립트)

  7. 테스트 스크립트 2: test.js(nodejs 스크립트)

  8. 영향을 미칠 수 있는 기타 요소:

    • test.js는 yargs 패키지를 사용하여 명령줄 매개변수를 받습니다

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

    • 으로 인해

오류 재발

test.php

으아아아

test.js

으아아아

재생산 과정

  • cmd.exe를 열고 cmd.exe,输入chcp 65001,切换编码到UTF-8를 입력한 다음 인코딩을 UTF-8로 전환하세요.


  • 먼저 달려test.js,传入参数-t "白毛浮绿水", 보통

  • 실행 중test.php, 잘못된 코드를 출력

  • 이 상황의 원인과 해결 방법을 알려주세요. 감사합니다

怪我咯
怪我咯

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

모든 응답(1)
迷茫

Windows cmd는 기본적으로 gbk 인코딩을 사용하므로 utf8 전송이 깨집니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿