首页 > 解决方案 > 在后台模式下运行 bash 脚本时的编码问题

问题描述

我有一个 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...

标签: phppythonlinuxbash

解决方案


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

$ locale

在此处输入图像描述

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

$ export LC_ALL=en_US.UTF-8

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


推荐阅读