您的位置:首页 > 编程语言 > Java开发

关于使用中文分词工具ICTCLAS2013 Java版本乱码的问题

2013-11-15 22:20 423 查看
中文分词工具ICTCLAS2013Java版本的使用什么的我就不罗嗦了,不知道怎么使用的点这里点击打开链接

我的eclispe的text file encoding是GBK的。这个也就不废话了。

运行一下,控制台输出一堆乱码的东西:



图1. 直接运行后控制台输出乱码。

为什么会这个样子呢?看看工具发布主页的FAQ中的一个问题:



图2. FAQ中一个关于编码的问题。

根据图2中的这个回答,我将TestNLPIR.java中的33行试着修改一下:

if (testNLPIR.NLPIR_Init(argu.getBytes("GB2312"),1) == false)  ==>  if (testNLPIR.NLPIR_Init(argu.getBytes("GB2312"),0) == false)

现在控制台输出OK了。



图3. 修改代码第33行后控制台的输出

看看./test/test_result1.TXT   ./test/test_result2.TXT文件,同样编输出正确,并且是gbk的格式。

总结: 看看NLPIR.java中的public static native boolean  NLPIR_Init(byte[] sDataPath,int encoding),这函数第二个参数就是编码设置。

              Java编程环境是gbk,那么这个Init参数设置应该是0,对应就是gbk编码,后面一些字符编码什么的统统都设置成为GB2312。(比如 nativeStr = new String(nativeBytes, 0, nativeBytes.length, "GB2312"))。保持编程环境编码,Init参数,输出字符编码统一就OK的了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  中文分词 java 乱码