我正在使用一个名为Jsoup的HTML解析器来加载和解析HTML文件。问题是,当我使用ISO-8859-1
编码(?)时,我正在抓取的网页会在UTF-8
字符集中进行编码。这导致一些字符显示为问号。
所以现在我想我应该将字符串转换为UTF-8格式。
现在我在Android SDK中找到了这个名为CharsetEncoder的类,我想这可以帮助我。但是我无法弄清楚如何在实践中实现它,所以我想知道是否可以通过一个实际的例子获得帮助。
更新:读取数据的代码(Jsoup)
url = new URL("http://www.example.com");
Document doc = Jsoup.parse(url, 4000);
答案 0 :(得分:6)
您可以让Android为您完成工作,方法是将页面读入byte [],然后使用jSoup方法解析String对象。
当您使用正确的字符串constructor从服务器读取的数据创建字符串时,不要忘记指定编码。
答案 1 :(得分:4)
public static void main(String[] args) {
System.out.println(System.getProperty("file.encoding"));
String original = new String("A" + "\u00ea" + "\u00f1"
+ "\u00fc" + "C");
System.out.println("original = " + original);
System.out.println();
try {
byte[] utf8Bytes = original.getBytes("UTF8");
byte[] defaultBytes = original.getBytes();
String roundTrip = new String(utf8Bytes, "UTF8");
System.out.println("roundTrip = " + roundTrip);
System.out.println();
printBytes(utf8Bytes, "utf8Bytes");
System.out.println();
printBytes(defaultBytes, "defaultBytes");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} // main