使用 UTF-8 进行 PHP 系统调用 Python
Using UTF-8 for PHP System call to Python
PHP 中存在系统调用,因此
system("python3 returnUTF8.py")
如果我 运行 Linux 命令行上的 Python 脚本 - 它工作正常,但是当我使用 PHP 系统命令时,我得到一个错误 "UnicodeEncodingError - can't encode to ascii"...
我理解问题是 Python 中的打印函数默认为调用者想要的结果,当我在命令行上 运行 print (sys.stdout.encoding)
时显示了这一点得到 UTF-8
并从系统调用中得到 ANSI_X3.4-1960
.
如何更改 PHP 或 Python 脚本中的系统调用以使用 UTF-8 编码?
您需要告诉 Python 使用什么编码;通常这是从您的终端语言环境中获取的,但是当您使用 system()
时,没有这样的语言环境,然后使用默认的 C
语言环境编码,即 ANSI_X3.4-1960
(又名 ASCII)。
设置PYTHONIOENCODING
environment variable:
system("PYTHONIOENCODING=utf-8 python3 returnUTF8.py")
或在您的程序中显式编码为 UTF-8。
PHP 中存在系统调用,因此
system("python3 returnUTF8.py")
如果我 运行 Linux 命令行上的 Python 脚本 - 它工作正常,但是当我使用 PHP 系统命令时,我得到一个错误 "UnicodeEncodingError - can't encode to ascii"...
我理解问题是 Python 中的打印函数默认为调用者想要的结果,当我在命令行上 运行 print (sys.stdout.encoding)
时显示了这一点得到 UTF-8
并从系统调用中得到 ANSI_X3.4-1960
.
如何更改 PHP 或 Python 脚本中的系统调用以使用 UTF-8 编码?
您需要告诉 Python 使用什么编码;通常这是从您的终端语言环境中获取的,但是当您使用 system()
时,没有这样的语言环境,然后使用默认的 C
语言环境编码,即 ANSI_X3.4-1960
(又名 ASCII)。
设置PYTHONIOENCODING
environment variable:
system("PYTHONIOENCODING=utf-8 python3 returnUTF8.py")
或在您的程序中显式编码为 UTF-8。