除了在 HTTP header 中指定的任何字符集之外,這裡不涉及任何字符集。String check ="
isn’t
".replaceAll("&([^;]+?);","**$1;");Document doc = Jsoup.parse(check);
doc.outputSettings().prettyPrint(false).escapeMode(EscapeMode.extended);
System.out.println(doc.outerHtml().replaceAll("**([^;]+?);","&$1;"));
輸出
isn’t
討論
我希望在jsoup的API中有一個解決方案- -
使用 jsoup'要求你編寫定製的NodeVisitor 。 它將導致( re ) 發明一些現有的代碼 inside Jsoup 。 定製Nodevisitor將生成一個HTML轉義碼而不是unicode字元。
另一個選項是編寫自定義字元編碼器。 默認的UTF-8 字元編碼器可以編碼 ’ 。 這就是為什麼Jsoup不在最終的HTML代碼中保留原來的轉義順序。
這兩個 上面 選項中的任何一個都代表著一個大的編碼工作。 最終,可以將增強添加到Jsoup中,以便我們選擇如何在最終的HTML代碼中生成字元: 十六進位轉義( AB; ),十進位轉義( ),原始轉義序列( ’ ) 或者寫入編碼字元( 你的文章中的情況是) 。