2012-04-24 10 views
4

私はjavaでHTMLファイルを解析/変換するためにHtmlCleanerライブラリを使用しています。HTMLCLEANERはスペイン語の文字を扱います

それはそれはのようなスペイン語の文字を扱うことができていないようだ「ÁáÉéÍíÑñÓóÚúÜü」

私はこのまたは他のソリューションを処理するためのHtmlCleanerで設定できるすべてのプロパティがありますか?ここで私はそれを呼び出すために使用しているコードです。

CleanerProperties props = new CleanerProperties(); 
props.setRecognizeUnicodeChars(true); 
java.io.File file = new java.io.File("C:\\example.html"); 
TagNode tagNode = new HtmlCleaner(props).clean(file); 
+0

UTF-8を使用するようにエンコードを設定する方法はありますか? – Makoto

+0

私はファイルに書き込むときにUTF-8を使用しています。 'new PrettyHtmlSerializer(props).writeToFile(tagNode、filePath、" utf-8 ");' – choop

+0

HTMLファイルは実際にUTF-8としてエンコードされていますか? –

答えて

2

HtmlCleanerは、指定されていない限り、JVMから読み取られるデフォルトの文字セットを使用します。 Windowsでは、これはUTF-8ではないCp1512になります。これはおそらく間違っています。

あなたはどちらか

  • は文字が

    TagNode tagNode = new HtmlCleaner(props).clean(file, "UTF-8"); 
    

    を設定受け入れHtmlCleaner.clean()オーバーロードを使用して、あなたのJVMのスタートラインに

  • -Dfile.encoding=UTF-8を指定することができます(あなたがGoogleのグアバを持っている場合あなたは定数としてCharsets.UTF_8を使用できます)

  • は、既に正しい文字セットで構築したInputStreamReaderを受け入れる、オーバーロードをHtmlCleaner.clean()で実行します。
+0

解決済み、ありがとうございます! – choop

0

あなたはUTF-16UTF-8を変更することができます。

最大文字数をサポートします。

+0

しかし、それは単なるエンコードであり、サポートされている文字の数は変更されません。これは、HtmlCleanerが間違ったエンコーディングでファイルを読み込んでいて、正しく検出されたBOMでUTF-16が生成された場合に役立ちますが、疑いがあります。 – Rup

+0

@AzharあなたはUTF-16がUTF-8よりも多くの文字を持っていると思われる理由をあなた自身の言葉で説明することができます。 –

+0

@MrLister ..最初のHTMLをコーディングし始めたとき、私は支持文字に問題がありました。だから、私を助けてくれる先輩がいました:) ..彼は私に、UTF-16がもっと多くの文字をサポートすると言った私または私の上級者が間違っている場合は、私を修正してください。 – Azhar

関連する問題