将utf16字符串中的url提供给jsoup的问题

时间:2012-04-24 15:16:15

标签: utf-8 jsoup

我在Jsoup中遇到了一些URL问题。我一直在搜索有关它的一些信息,但我没有找到如何解决它。 我想解析用UTF-8编写的html代码。我给一个字符串中的jsoup提供了一个url,但是它有一个spansishchar'ñ'。 Jsoup将其解码为UTF-8但它不能很好地工作,因为它将它转换为另一对字符。我该怎么办?

编辑:

我已经解决了问题(我的本地问题)用这样的utf8(ñ= c3b1)中的代码替换'ñ'。 search =España - > Espa +“c3b1”a。感谢所有人。

1 个答案:

答案 0 :(得分:2)

你可以试试这样的东西,看看它是否有效吗?

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

编辑:

我认为你说你正在使用UTF-16构建你的URL,但是Jsoup假设你提供的URL是UTF-8。因此,您需要将字符串从UTF-16转换为UTF-8,然后再将其提供给Jsoup。我玩了一些代码,也许它会帮助你,虽然我不确定。我不是说这是答案,但也许它会引导你走上答案的道路。

//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"));

您可能需要根据自己的情况进行切换。