- - PR -
HTMLEditorKit.ParserCallback.handleTextで特殊文字をパースした時の戻り値について
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-18 18:09
初めまして、ジョンと申します。
ParserDelegatorを使って、HTML内のテキストだけを抽出するプログラムを書いているのですが、特殊文字のが上手く抽出できません。特に&nbsp;が問題で、何時ものように?になってしまいます。 下記のアプリケーションを実行すると 出力:?<?こんにちは?>? となってしまいます。期待している出力は 期待する出力:&nbsp;&lt;&nbsp;こんにちは&nbsp;&gt;&nbsp; です。 HTMLストリームをParserDelegatorへ渡した時点で特殊文字はUnicodeに直されているようで、特殊文字は&lt;=“<”のように変換されてしまっています。 今のところUnicodeを特殊文字に戻すクラス(下記:SpecialCharacterTable)で強引に元に戻しているのですが、丸文字やユーロ記号のように比較的最近追加された特殊文字等があると、やはり?が出力されてしまうの、未だに戦々恐々としています。 出来れば、ByteArrayOutputStreamを直接ParserDelegator().parse()に渡して、handleTextの戻り値としてchar[]ではなくbyte[]で受け取りたいのですが、何か良い方法はないものでしょうか? もし似たような御経験がある方がいらっしゃれば是非ご教授をお願いいたします。 *** handleText()の実装とストリームの入力 ***
*** 特殊文字変換の為のクラス ***
※本文とコードの中の\(バックスラッシュ)と&はこのBBの表示の都合で全角に治したあります。本来は半角の¥と&です。 | ||||||||
1
