Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编码php和python?_Php_Python - Fatal编程技术网

编码php和python?

编码php和python?,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

我编写的代码将一个查询从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)
导入系统 导入pymorphy2 morph=pymorphy2.MorphAnalyzer() word=sys.argv[1] word=morph.parse(word)[0] i=0 result=“” 而我
一些有趣的事情:所有(2)个文件都在
utf-8
中。在python脚本中,我使用的是编码
utf-8
,它没有帮助。在php中,我使用
iconv()
函数更改编码,并使用
mb\u detect\u encoding
函数检测现在的编码。它显示
utf-8
。请帮助我使我的编码有效


我的python版本是
3.5
,我使用
.htaccess
您不应该有这个问题,可以通过使用一个简单的示例来缩小问题的范围:

中调用_python.php

<?php 

$result = shell_exec('python called_python.py');
print("Python reports: ".$result);
我们可以看到结果:

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

我正在Mac系统上使用
bash
shell。如果上述方法对您有效,那么您知道问题在于您在代码中所做的事情。如果不支持,您知道这与两个脚本之间的传输有关。

您的shell是否支持utf-8?您可能希望至少在python文件的顶部放置一个shebang(#!/usr/bin/env python),或者执行shell('python get.py';否则在Unix/Linux上,执行shell_exec将尝试以shell脚本的形式运行应用程序。这几乎肯定是由于您的终端不支持UTF-8;请改用
urxvt
$ php call_python.php 
Python reports: I am a banana!