JAVA代码调用Python遇到编码无法找到问题:no codec search functions registered

BernardXiong 发布于 2012/12/25 12:21
阅读 2K+
收藏 0

各位大神,求助,小弟我在运用java调用Python脚本的时候,java控制台报找不到编码的错误,下面是我的报错:

Exception in thread "main" LookupError: no codec search functions registered: can't find encoding 'gb2312'

下面贴出我java后台的调用部分代码:

public static void main(String args[]) {


PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("D:\\Python2\\test.py");


PyFunction func = (PyFunction) interpreter.get("loadContent",
PyFunction.class);
 
       String str = ("D:\\test1\\1.txt");  
       PyObject pyobj = func.__call__(new PyString(str));  
       System.out.println("size = " + pyobj.toString());  


}//main

这里是我python脚本部分的代码:

#!/usr/bin/python
# -*- coding: gb2312 -*-
#test.py
import os,time


 def loadContent(self,path):
        try:
           f = open(path,'r')
           strs = f.readlines()
           strsNew = []
           for i in range(len(strs)):
              strsNew.append(unicode(strs[i],"gb2312"))
        except UnicodeDecodeError:
           for i in range(len(strs)):
              strsNew.append(unicode(strs[i],"utf-8"))
        finally:
           return strsNew
           f.close()

希望有大神能帮忙解决下这个问题,多谢了

加载中
返回顶部
顶部