【问题标题】:Using UTF-8 for PHP System call to Python使用 UTF-8 进行 PHP 系统调用 Python
【发布时间】:2017-04-17 07:18:33
【问题描述】:

PHP 中存在这样的系统调用

system("python3 returnUTF8.py")

如果我在 Linux 命令行上运行 Python 脚本 - 它工作正常,但是当我使用 PHP 系统命令时,我收到错误“UnicodeEncodingError - 无法编码为 ascii”...

我理解问题在于 Python 中的打印函数默认为调用者想要的结果,当我在命令行上运行 print (sys.stdout.encoding) 时我得到 UTF-8 并从系统调用中得到 @ 987654324@.

如何更改 PHP 或 Python 脚本中的系统调用以使用 UTF-8 编码?

【问题讨论】:

    标签: php linux bash python-3.x system


    【解决方案1】:

    你需要告诉 Python 使用什么编码;通常这是从您的终端语言环境中获取的,但是当您使用system() 时,没有这样的语言环境,然后使用默认的C 语言环境编码,即ANSI_X3.4-1960(又名ASCII)。

    设置PYTHONIOENCODING environment variable:

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

    或在您的程序中显式编码为 UTF-8。

    【讨论】:

    • 非常感谢!这为 2 小时的挫败感画上了句号。 :)
    猜你喜欢
    • 2011-11-13
    • 1970-01-01
    • 2016-08-30
    • 2010-11-19
    • 2011-07-13
    • 2012-02-12
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    相关资源
    最近更新 更多