java调用python脚本,中文变成问号

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

问题:中文变成了???,导致结果出错,该怎么解决,希望大牛赐教

1个回答

相对于纯Python代码

 \# coding:utf-8
import sys

reload(sys)
sys.setdefaultencoding('utf8')

,使用Java调用Python的话也要模拟出一致的字符集编码。本身你的Java程序不是UTF-8编码,
所以导致了Python代码在解析的时候遇到中文出现乱码。

理解了原理性的错误之后,问题应该就能很快的解决了。
希望对你有用 :-)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问