簡體   English   中英

如何使用JSOUP獲取解析的HTML特殊字符

[英]How do I get parsed HTML special characters using JSOUP

我正在使用JSoup從網頁獲取H1標簽值,該標簽包含以下HTML。

己基β-D-吡喃葡萄糖苷

當我使用.text()方法時,我得到以下信息。 (請注意?),我認為這是因為它無法計算出“β”字符的HTML。 如何獲得在網頁上呈現的值。

己基β-D-吡喃葡萄糖苷


提取想要的文字后,是否需要進行某種轉換?

這是我的代碼。

        String check = "<title>Hexyl &#946;-D-glucopyranoside &#8805;98.0% (TLC) | &#8805; &#8805;</title>";
        Document doc3 = Jsoup.parse(check);
        doc3.outputSettings().escapeMode(Entities.EscapeMode.base); // default

        doc3.outputSettings().charset("UTF-8");
        System.out.println("UTF-8: " + doc3.html());
        //doc3.outputSettings().charset("ISO 8859-1");
        doc3.outputSettings().charset("ASCII");
        System.out.println("ASCII: " + doc3.html());`

-----在控制台輸出-----

    UTF-8: <html>
    <head>
    <title>Hexyl ?-D-glucopyranoside ?98.0% (TLC) | ? ? </title>
     </head>
    <body></body>
   </html>
   ASCII: <html>
    <head>
    <title>Hexyl &#946;-D-glucopyranoside &#8805;98.0% (TLC) | &#8805; &#8805;</title>
     </head>
    <body></body>
    </html>

您正在使用的IDE似乎使用了錯誤的字符編碼。

我已經運行了它,與您的代碼無關,也很好(輸出奇怪的字符)。 如果您使用的是Eclipse,請轉到該特定項目的運行配置設置,然后單擊“公共”選項卡,然后選擇UTF-8。

解析文檔后設置字符集為時已晚。 我曾經遇到過同樣的問題,試圖按照自己的方式做,但失敗了。

這為我工作:

String url = "url to html page";
InputStream is is =new URL(url).openStream();
org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(is , "ISO-8859-2", url);

如果我只有html文本作為字符串,則首先將其轉換為InputString( http://www.kodejava.org/examples/265.html

InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));

然后使用正確的字符集讀取它:

BufferedReaderr = new BufferedReader(new InputStreamReader(is, "UTF-8"), 4*1024);
StringBuilder total = new StringBuilder();
String line = "";
while ((line = r.readLine()) != null) {
     total.append(line);
}
r.close();
is.close();
String html = total.toString();

...並解析:

doc = org.jsoup.Jsoup.parse(html);

重要的是要以某種方式獲取InputStream對象,並且從這里可以使用所需的字符集。 也許可以以更直接的方式來完成。 但這有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM