编码php和python?
我编写的代码将一个查询从php发送到python脚本(一些变量),python脚本执行一些操作并返回一些str。但是这个字符串无效!它有许多问号。我知道当编码无效时会出现此问题,但我使用的所有文件的格式都是编码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
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!