著名设计网站,济南会做网站的公司,建设银行官方网站下载,wordpress评论不能用最近#xff0c;在项目中需要用到Java代用Python的代码#xff0c;并且需要传参数#xff0c;因此选用了Jython包#xff0c;但是#xff0c;如果在调用python脚本时#xff0c;出现了中文乱码的现象。代码如下#xff1a; PythonInterpreter interpreter interpreter …最近在项目中需要用到Java代用Python的代码并且需要传参数因此选用了Jython包但是如果在调用python脚本时出现了中文乱码的现象。代码如下 PythonInterpreter interpreter interpreter new PythonInterpreter();String code # -*- coding: utf-8 -*-\n import sys\n reload(sys)\n sys.setdefaultencoding(utf-8)\n import json\n def parse(strtest):\n jsonObj json.loads(strtest)\n jsonObj[\省份\] \安徽省\\n return json.dumps(jsonObj);interpreter.exec(code);PyFunction func (PyFunction)interpreter.get(parse,PyFunction.class);String str {\CityId\:18,\CityName\:\合肥\,\ProvinceId\:27,\CityOrder\:1};PyString str2 Py.newStringOrUnicode(str);PyObject pyObject func.__call__(str2);JSONObject json new JSONObject(pyObject.toString());System.out.println(json.toString());运行结果如下 结果很奇怪传进去的参数中有中文不乱码但是写在脚本中的中文乱码了开始以为是Python脚本中编码的设置问题上网搜了很久答案都是在脚本中加入 # -*- coding: utf-8 -*- 或者sys.setdefaultencoding(utf-8)之类的但是都没有效果。后来想了想是不是代码中的code脚本传进Jython包中不是utf-8编码的问题因此试了试把code 脚本写在文件中并制定文件为utf-8编码使用interpreter.execfile(“E:\\test.py”)调用脚本执行结果中文不乱码了。 虽然上述方法解决了问题但是如果每次动态执行脚本时都需要先把脚本存到.py文件中然后在调用这样会很麻烦。 因此研究了下Jython包发现在讲Java的字符串传进Jython包中时可以先转化为PyString并指定编码因此修改上述程序。 运行结果如下 转载于:https://www.cnblogs.com/junjiang3/p/7112789.html