Jython中文乱码问题
最近,在项目中需要用到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
Jython中文乱码问题相关推荐
- Jmeter中Python中文乱码
副标题:Jmeter中Jython中文乱码 被这个问题折腾了差不多两个小时,终于解决了,但是具体为什么会这样,还是不太明白.在pycharm里面(py3.7)一切都是正常的,换到Jmeter的Jyth ...
- SpringSecurity安全验证中文乱码问题
使用SpringSecurity做安全验证时发现form表单中提交中文名会出现乱码问题. 原因是因为我在web.xml配置文件中将springSecurityFilterChain拦截器放在了 cha ...
- httpclient工具类,post请求发送json字符串参数,中文乱码处理
在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...
- 关于HttpClient上传中文乱码的解决办法
使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...
- Servlet、MySQL中文乱码
1.Servlet中文乱码: 在doPost或doGet方法里,加上以下两行即可: response.setContentType("text/html;charset=UTF-8" ...
- android java 中文乱码_android读写中文如何避免乱码详解
前言 android读取文件中文出现乱码的原因无非就是,读取文件的字符格式与写如文件的格式不一致.因此,避免中文乱码,要在写入文件的时候按照一定的格式写入,读取的时候按照一定的格式读取.这样对应就不会 ...
- java servlet 参数乱码_JSPServlet处理参数中的中文乱码总结
从form表单提交信息到一个JSP页面或者一个Servlet进行处理的时候,提交的中文信息若不加处理的话就会显示乱码,如一串???.现在通过一个例子来进行总结如下: 写一个用户信息提交页面,通过这个页 ...
- php pdo 中文乱码,php pdo oracle中文乱码的快速解决方法
在/etc/profile.d/简历oracle.sh 内容如下在NLS_LANG设置编码ORACLE_HOME=/usr/lib/oracle/12.1/client64 C_INCLUDE_PAT ...
- sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?
很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...
最新文章
- 面试官:你能说说MyBatis拦截器原理吗?
- 查询出每个部门比本部门平均工资高的职工人数
- 手机html图片模糊,css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题_html/css_WEB-ITnose...
- 准备 overlay 网络实验环境 - 每天5分钟玩转 Docker 容器技术(49)
- 推荐系统里,可以用蒸馏吗?
- 图表中各个参数的应用( AChartEngine XMultipleSeriesRenderer
- 【变色龙】app封装系统源码+完美版在售封装系统
- python3列表推导式矩阵转置_python3进阶之推导式1之列表(list)推导式(comprehensions)...
- java大数据组件HBase
- CSS进阶(4)—— 温和padding中的诡异CSS现象
- ztree异步加载数据amp;amp;amp;amp;amp;amp;amp;amp;给父节点动态追加子节点
- ASP.NET中 CompareValidator(比较验证)的使用
- 交换机SERDES介绍
- kb2999226此更新不适用你的计算机,Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机...
- kali桌面图标和右键菜单系统更新之后不见了的解决方法
- 2018浙大计算机考研经验
- echarts 中国地图加自定义图标
- Python人脸识别黑科技(二):教你使用python+Opencv完成人脸解锁
- EI收录中国期刊目录 各个版本的含义及收录例子-12年初版
- 真有那么大差距?— iPhone XR 屏幕素质报告
热门文章
- 论文阅读(4)--Part-Stacked CNN for Fine-Grained Visual Categorization
- python中_python中的一些用法总结
- python实现离线翻译_10分钟教你用Python实现微信翻译机器人
- 【codeforces 534D】Handshakes
- python实战之编码问题:中文!永远的痛
- [原创] 毕设---在myeclipes中安装Hadoop开发插件
- 小程序自带git方法提交时文件冲突的解决
- idea创建springboot项目出现的问题
- QC安装与运行中的问题汇集
- 警惕Oracle DB操作高压线