为啥运行的代码总是乱码呢?

为啥运行书上第8章 ‘demo_role_tag_nr’ 代码时出现乱码了呢?其实先前也出现过乱码的情况,自己查了查感觉应该是调试模式那块乱码了,最后打印的结果没有乱码。

你的系统默认gbk编码,这个补丁修复了:

你可以下载 hanlp-1.7.5.jar.zip 解压覆盖你的pyhanlp/static/hanlp-1.7.5.jar

谢谢您的帮助,但是刚才试了一下,把文件覆盖后,没有解决那个问题。除了最后划分的结果没有乱码,前面还是乱码的

然后我打开产生的nr.ngram.txt(二元语法模型)和nr.txt文件,也没有乱码的

把相应的缓存nr.ngram.txt.binnr.txt.bin删除试试。

谢谢您的帮助,但是还是没有解决这个问题,不太清楚是不是我电脑的原因

可能是JVM的stdout输出pipe到Python时发生了编码错误,你可以排查下问题:

from jpype import *
startJVM(getDefaultJVMPath(), "-ea")
java.lang.System.out.println("中文")

我按您说的在cmd里面进入python运行了一下,没有乱码。然后在pycharm运行的时候乱码了。早上也尝试在 println(“中文”) 里面添加 enconding=“utf-8”、"gbk"那些编码方式试了试,但是还是乱码。

你的Pycharm要设置utf-8:

感动!可算是解决了,真的太感谢了


悄悄地说一句:是都改成GBK~您发的那个链接的评论里面有说,虽然不知道是为什么:joy::joy:
谢谢您的指点!