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

中文分词工具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的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值