2016-12-02 1 views
0

시스템 호출이 PHP에 존재하는 PHP 시스템 호출에 대해 내가 리눅스 명령 줄에서 파이썬 스크립트를 실행하는 경우사용하여 UTF-8 파이썬

system("python3 returnUTF8.py") 

하도록 - 잘 작동, 내가 PHP를 사용하지만 때 시스템 명령 "UnicodeEncodingError - ascii로 인코딩 할 수 없습니다"...

파이썬의 인쇄 기능은 기본적으로 호출자가 원하는 결과를 얻는 것으로 이해합니다. 실행하면 표시됩니다. 명령 줄에서 print (sys.stdout.encoding)을 얻고 UTF-8을 얻고 시스템 호출에서 ANSI_X3.4-1960을 얻습니다.

PHP 또는 Python 스크립트에서 UTF-8 인코딩을 사용하도록 시스템 호출을 변경하려면 어떻게해야합니까?

답변

3

파이썬에게 어떤 인코딩을 사용할 지 알려줄 필요가 있습니다. 일반적으로 이것은 사용자의 단말기 로케일에서 가져 오지만, system()을 사용할 때 그러한 로케일이 없으면 C 로케일 인코딩 기본값 인 ANSI_X3.4-1960 (ASCII)이 사용됩니다.

system("PYTHONIOENCODING=utf-8 python3 returnUTF8.py") 

으로 또는 명시 적으로 프로그램에서 UTF-8로 인코딩 다음 PYTHONIOENCODING environment variable

설정합니다.

+0

정말 고마워요! 그것은 2 시간의 좌절에 결론을 가져 왔습니다. :) – seanbulley