php - 编码 php 和 python?

标签 php python

我编写了将查询从 php 发送到 python 脚本(一些变量)的代码,python 脚本做了一些事情并返回了一些 str。但是这个字符串是无效的!它有很多问号。我知道当编码无效时会出现此问题,但我使用的所有文件的格式都是 utf-8

我的 php 文件:

$search = $_POST["search"];
$search = shell_exec('get.py ' . $search);
 print($search);

结果我看到了这个������������。 Python脚本代码:

import sys
import pymorphy2


morph = pymorphy2.MorphAnalyzer()

word = sys.argv[1]

word = morph.parse(word)[0]
i = 0
result = ""
while i < len(word):
    result = result + " " + word.make_agree_with_number(i).word
    i = i + 1
print (result)

一些有趣的事情:所有 (2) 个文件都在 utf-8 中。在 python 脚本中,我使用编码 utf-8 并且它没有帮助。在 php 中,我使用 iconv() 函数来更改编码,并使用 mb_detect_encoding 函数来检测现在的编码是什么。它显示 utf-8。请帮助我使我的编码有效!

我的python版本是3.5,我用的是.htaccess

最佳答案

您不应该遇到这个问题,并且可以使用最小示例缩小问题范围:

call_python.php 中:

<?php 

$result = shell_exec('python called_python.py');
print("Python reports: ".$result);

called_python.py中:

#!/usr/bin/env python

print("I am a banana!")

我们可以看到结果:

$ php call_python.php 
Python reports: I am a banana!

我在 Mac 系统上使用 bash shell。如果以上对你有用,你就知道问题出在你在代码中做了什么。如果不是,您知道它与两个脚本之间的传输有关。

关于php - 编码 php 和 python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32958805/

相关文章:

python - NLP 任务中的 token-level 和 segment-level 有什么区别?

python - scipy 的 RegularGridInterpolator 能否通过一次调用同时返回值和梯度?

php - 帮助我理解浏览 glype 代理时的 HTTP 请求

php - 多项选择形式行动取决于选择

php - 在 Codeigniter 中无法发送电子邮件 - fsockopen() : unable to connect to ssl://smtp. gmail.com:465(连接被拒绝)

php - 从数据库表中选择所有 - 但在其中一列上使用函数

python - 模块未找到错误 : No module named 'utils'

Python 命名空间 : How to make unique objects accessible in other modules?

php - 编辑记录 PHP 表单

python - 如何操作列表