2012-04-24 3 views
1

JsoupのURLにいくつか問題があります。私はそれに関するいくつかの情報を探していますが、私はそれを解決する方法を見つけることはありません。 UTF-8で書かれたHTMLコードを解析したいと思います。私はStringにjsoupへのURLを与えますが、それはスパンスキーchar ' - 'を持っています。 JsoupはそれをUTF-8にデコードしますが、別の文字のペアに変換するのでうまくいきません。私に何ができる?utf16でURLを指定する際の問題jsoupへの文字列

EDIT:

私はこのような(私の地元の問題)UTF8でそのコードを 'N' に置き換える(N = c3b1)問題を解決しました。 search =España - > Espa + "c3b1" a。すべてのためのThx。

答えて

2

このようなことを試しても効果がありますか?

Document doc = Jsoup.connect("blah").get(); 
doc.outputSettings().charset(Charset.forName("UTF-16")); 

編集:

私はあなたがUTF-16を使用してURLを構築していると言っていると思うが、Jsoupはあなたがそれを供給されているURLはUTF-8であると想定。だからあなたはJsoupにそれを与える前にあなたの文字列をUTF-16からUTF-8に変換する必要があります。私はいくつかのコードで遊んだが、おそらくそれはあなたを助けるだろうが、わからない。私はそれが答えであると言っているわけではありませんが、おそらくそれは答えへの道を導くでしょう。

//I believe this code takes a UTF-8 string, creates a new UTF-16 string. 
String url = new String("http://www.google.com/search=España".getBytes(Charset.forName("UTF-8")), Charset.forName("UTF-16")); 

状況に応じて切り替えが必要な場合があります。

+0

いいえ、うまくいきません。問題はURL内にあります。なぜなら、urlにutf 16でエンコードされた 'ñ'があり、UTF 8でエンコードされるURLが必要なのです。私はウェブサイトを使って情報を要求しています。それを認識しますが、私がJsoupとの接続を確立した場合、Webサイトはそれを認識しません。 –

+0

たとえば、Google検索を解析するとします。 GoogleにEspañaを書くと、それはあなたを理解しています。あなたがGoogleによって与えられたURLを変更し、別の検索を得ることができると想像してください(google.com/search= "España") 私はこのURLを持っていて、私はjsoupと接続してからhtmlを解析する。私がJsoupのconnect(url)メソッドに渡す文字列はutf16でエンコードされており、Webはñを理解しません。最後に、私は空の検索や何かが私が尋ねたものと一致しません。 –

+0

UTF-16でエンコードされたWeb上のHTMLからURLを取得していますが、UTF-8で必要ですか?あなたは読んでいるサイトのURLを投稿できますか? –

関連する問題