首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解码从shell_exec()返回的UTF-8字符串?

如何解码从shell_exec()返回的UTF-8字符串?
EN

Stack Overflow用户
提问于 2020-04-01 13:23:13
回答 2查看 248关注 0票数 1

这样做是可行的:

代码语言:javascript
复制
$csv = " b'\xd0\x9e\xd0\xb4\xd0\xbd\xd0\xb0\xd0\xba\xd0\xbe \xd0\xbe\xd0\xb1\xd0\xb8\xd0\xb4\xd0\xbd\xd0\xbe \xd0\xb1\xd1\x83\xd0\xb4\xd0\xb5\xd1\x82 \xd0\xbf\xd0\xbe\xd1\x82\xd1\x80\xd0\xb0\xd1\x82\xd0\xb8\xd1\x82\xd1\x8c \xd0\xbd\xd0\xb0 \xd0\xb4\xd0\xb5\xd0\xbb\xd0\xb0 \xd0\xb2\xd1\x80\xd0\xb5\xd0\xbc\xd1\x8f, \xd0\xba\xd0\xbe\xd1\x82\xd0\xbe\xd1\x80\xd0\xbe\xd0\xb5 \xd0\xbc\xd0\xbe\xd0\xb3\xd0\xbb\xd0\xb8 \xd0\xb1\xd1\x8b \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb5\xd1\x81\xd1\x82\xd0\xb8 \xd0\xb1\xd0\xbe\xd0\xbb\xd0\xb5\xd0\xb5 \xd0\xbf\xd0\xbb\xd0\xbe\xd0\xb4\xd0\xbe\xd1\x82\xd0\xb2\xd0\xbe\xd1\x80\xd0\xbd\xd0\xbe.'";
$csv = mb_convert_encoding($csv,'UTF-8');

当返回未转换的字符串时:

代码语言:javascript
复制
$o = shell_exec('python3.6 /var/www/html/main.py'.'normal');
$contents = mb_convert_encoding($o,'UTF-8');
echo $contents

Python脚本返回相同的字符串。我尝试了strval()和unpack(),但没有成功。

以下是"locale -a“的结果:这里

即使我把对脚本的调用放在了eval()中,它也会将字符串解释为数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-01 20:31:18

我把它放在php脚本中,我不需要在脚本之间编码任何东西,它只起作用:

代码语言:javascript
复制
putenv("PYTHONIOENCODING=utf-8");
票数 0
EN

Stack Overflow用户

发布于 2020-04-01 13:33:49

在调用shell_exec()之前尝试添加这一行

代码语言:javascript
复制
putenv('LANG=en_US.UTF-8');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60971876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档