我编写了将查询从 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/