0

juniversalchardet を使用して、保存された Web ページのエンコーディングを自動検出しようとしています。最初のテストでは、HTTP 応答ヘッダーに従って UTF-8 エンコーディングを使用する www.wikipedia.org を使用します (この情報は、ディスクに保存された後に失われます)。

これは私のscalaコードです:

    val content = <...load Wikipedia.html from disk...>
    val charsetD = new UniversalDetector(null)
    charsetD.handleData(content, 0, content.length)
    val charset = charsetD.getDetectedCharset

ただし、何をロードしても、charset の結果は常に「null」になります。これは、juniversalchardet ライブラリに欠陥があるためですか? それとも私の使い方が悪いのでしょうか?

4

1 に答える 1

0

問題は解決しました。charsetD.handleData(content, 0, content.length) は 4096 バイトを超えるバッチを処理できません。この関数がデータのチャンクで数回使用された後、すべてが機能します。

于 2015-08-16T01:34:30.290 に答える