java代码:
PythonInterpreter interpreter = new PythonInterpreter();
PySystemState sys = Py.getSystemState();
sys.path.add("C:\Python27\jython2.5.2\Lib");
interpreter.execfile("F:\Eclipse_WorkSpace\eval\src\eval\shell.py");
interpreter.exec("print contain('name:梁淘气',':淘气梁')");
python脚本:
def contain(str,subStr):
print str
print subStr
if subStr in str:
return True
else:
return False
输出:
name:???
:???
True
问题:中文变成了???,导致结果出错,该怎么解决,希望大牛赐教
相对于纯Python代码
\# coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
,使用Java调用Python的话也要模拟出一致的字符集编码。本身你的Java程序不是UTF-8编码,
所以导致了Python代码在解析的时候遇到中文出现乱码。
理解了原理性的错误之后,问题应该就能很快的解决了。
希望对你有用 :-)