【问题标题】:UTF-8 Encoding Problem in Java Text OutputJava 文本输出中的 UTF-8 编码问题
【发布时间】:2011-06-20 14:01:29
【问题描述】:

我一直致力于测试高棉 Unicode 分词器的各种解决方案(高棉语单词之间没有空格,这使得拼写检查和语法检查变得困难,以及从传统高棉语转换为高棉语 Unicode)。

我得到了一些现在在线的源代码 (http://www.whitemagicsoftware.com/software/java/wordsplit/),看起来很有希望。作者好心给了出处,但他忙着写书,无法解决问题。

我正在小规模测试代码,但输出有问题。

这是输入:

ជាដែលនឹងបានមាន

这是结果输出:

ជារ���លនឹងបានមាន,ជា រ���ល នឹង បាន ヘាន

单词实际上是正确拆分的,但是一个单词是混乱的。 输出应如下所示:

ជាដែលនឹងបានមាន,ជា ដែល នឹង បាន មាន

有人知道为什么输出是乱码吗?

这是带有非常小的高棉词典和要拆分的单词的代码:http://www.sbbic.org/khmerwordsplit.zip

下面是如何运行它:

java -jar wordsplit.jar khmerlexicon.csv khmercolumns.txt >> 结果.txt

非常感谢 stackoverflow 社区迄今为止为您提供的所有帮助,希望尽快找到解决方案!

【问题讨论】:

  • 这不是您问题的答案,但我最近阅读了 SO 用户 (BalusC) 关于 Unicode 的一篇非常好的博文。可能会有所帮助。 balusc.blogspot.com/2009/05/…

标签: java utf-8 nlp


【解决方案1】:

我注意到当系统编码配置为 UTF-8 时它可以正常工作:

java -Dfile.encoding=UTF-8 -jar wordsplit.jar khmerlexicon.csv khmercolumns.txt >> results.txt

也许输入文件被假定为系统编码。阅读BalusC's post mentioned in the comments,了解如何独立于系统编码执行输入/输出。

【讨论】:

  • 太棒了,谢谢 - 我认为这不是问题,因为一些 UTF-8 字符正在通过。我一定会看看 BalusC 的帖子。再次感谢!
猜你喜欢
  • 2013-11-12
  • 1970-01-01
  • 2012-06-11
  • 2014-10-13
  • 2018-02-16
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多