java使用PythonInterpreter执行python中文乱码问题(编码格式处理)

这里写自定义目录标题

  • 原因

原因

python编码格式cp1252
你的字符串是用 latin1 解码的(因为它是类型 unicode )
参考文献

案例:

def get_sql(checkpoint):
	return '测试中文'

java实现:

import org.apache.commons.io.IOUtils;
import org.python.util.PythonInterpreter;
import java.io.InputStream;

String pythonFunction = "def get_sql(checkpoint):\n\treturn '测试中文'";
PythonInterpreter pyInterp = new PythonInterpreter();
String pythStr = "# encoding:utf-8\n" + pythonFunction  + "\nresult = get_sql("+ "\"\"" +")";
InputStream is = IOUtils.toInputStream(pythStr,"utf-8");
pyInterp.execfile(is);
is.close();
String result = new String(pyInterp.get("result").toString().getBytes("latin1"),"utf-8")  

你可能感兴趣的:(java,开发语言)