鱼丸粗面的gravatar头像
鱼丸粗面2016-08-18 09:09:05

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

 

问题:就是java给python函数传参的时候编码出问题了,中文变成了???,导致结果出错,该怎么解决,希望大牛赐教

所有回答列表(2)
mdywywy的gravatar头像
mdywywy2016年8月23日

应该是和编码类别有关系,你可以把interpreter.exec("print contain('name:梁淘气',':淘气梁')"); 这一行代码修改为interpreter.exec("print contain(u'name:梁淘气',u':淘气梁')"); 

liang0130的gravatar头像
liang0130 LV52016年9月6日

python脚本中头部加入以下代码

#coding:utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友