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

기존 문제

  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 전송이 깨집니다

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!