【问题标题】:Encoding issue when run bash script in background mode在后台模式下运行 bash 脚本时的编码问题
【发布时间】:2020-03-14 08:54:44
【问题描述】:

我有一个 bash 脚本来运行带有参数的 python 脚本,它在终端中运行良好,但是当我使用 php 在后台模式下运行它时,它给了我编码错误。实际上脚本没有任何错误。

终端中的命令就是sudo bash total_report.sh

php 脚本中的后台模式:shell_exec("sudo bash total_report.sh > /dev/null 2>/dev/null &") 我知道这是语言环境问题,但请教我如何解决这个问题。

 'ascii' codec can't encode character '\xae' in position 59: ordinal not...

【问题讨论】:

  • 为什么要在这里添加python标签?也许this可以帮助你
  • 这是 ® 字符,FWIW
  • 谢谢@temmo。我已经检查过了,但我不想更改 python 代码,因为它在终端中运行良好,没有任何问题。但是当我通过 PHP 在后台运行它时不起作用
  • @AlexandrBiship 因为您使用的是网络,所以您需要添加指令格式,即终端可接受的 utf8

标签: php python linux bash


【解决方案1】:

我通过更改操作系统的全局语言环境(在我的例子中是 Ubuntu)解决了这个问题。

$ locale

就我而言,LC_ALL 默认为空。运行此命令进行设置。 (这是一个临时解决方案。操作系统重启后该值将消失)

$ export LC_ALL=en_US.UTF-8

您也可以在/etc/default/locale 中设置。我实际上不知道确切的原因,所以任何 cmet 都会帮助我和每个人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多