2011-02-03 12 views
2

私は、クメールのUnicodeワードブレーカーのさまざまなソリューションのテストに取り組んでいます(クメールにはスペルチェックと文法チェックが難しい単語間にスペースが含まれていません。クメールのUnicodeへ)。Javaテキスト出力でのUTF-8エンコーディングの問題

私はいくつかのソースコードが公開されていますが、現在オンラインとなっていると思われます(http://www.whitemagicsoftware.com/software/java/wordsplit/)。著者はソースを提供するのに十分親切でしたが、彼は本を書くことが非常に忙しく、トラブルシューティングができません。

非常に小規模でコードをテストしており、出力に問題があります。ここ

が入力された:

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

ここで得られた出力は次のとおり

ជារលនឹងបានមាន、ជារ លនឹងបាន មាន

実際には単語は正しく分割されていますが、1単語は混乱しています。 出力は次のようになります。

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

誰でも出力が文字化けれる理由の洞察力を持っていますか?

ここでは非常に小さなクメール語辞書と分割される言葉でコードです:http://www.sbbic.org/khmerwordsplit.zip

そして、ここではそれを実行する方法は次のとおりです。

のjava -jar wordsplit.jar khmerlexicon.csv khmercolumns.txt >> RESULTS.TXT

私は、これまでのところ、あなたがこのプロジェクトに提供しているすべてのヘルプのためのstackoverflowのコミュニティに非常に感謝しています - 私は解決策があると思いますすぐに見つかる!

+1

あなたの質問に対する答えではありませんが、私は最近SOユーザー(BalusC)によってUnicodeに関する非常に良いブログ記事を読んでいます。役に立つかもしれない。 http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html –

答えて

2

私は、システムのエンコーディングがUTF-8として構成されている場合、それが正しく動作することに気づい:

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

はおそらく、入力ファイルは、システムのエンコーディングであると仮定されます。 BalusC's post mentioned in the commentsを読むと、システムエンコーディングから独立して入出力を実行する方法を参照してください。

+0

ありがとうございました - UTF-8文字の一部が来る。私は間違いなくBalusCの投稿を見ていきます。再度、感謝します! – Nathan