Java標準ライブラリを使用して、いくつかのHTML文字をテキストに変換したいと思います。ライブラリが目的を達成するかどうか疑問に思いましたか?
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
// "Happy & Sad" in HTML form.
String s = "Happy & Sad";
System.out.println(s);
try {
// Change to "Happy & Sad". DOESN'T WORK!
s = Java.net.URLDecoder.decode(s, "UTF-8");
System.out.println(s);
} catch (UnsupportedEncodingException ex) {
}
}
Apache Commons LangライブラリのStringEscapeUtils.unescapeHtml3()
およびunescapeHtml4()
メソッドが探しているものだと思います。 https://commons.Apache.org/proper/commons-text/javadocs/api-release/org/Apache/commons/text/StringEscapeUtils.html を参照してください。
ここでは、アプリケーションのlib jsoupにjarファイルを追加して、このコードを使用するだけです。
import org.jsoup.Jsoup;
public class Encoder {
public static void main(String args[]) {
String s = Jsoup.parse("<Français>").text();
System.out.print(s);
}
}
ダウンロードjsoupへのリンク: http://jsoup.org/download
Java.net.URLDecoder
はapplication/x-www-form-urlencoded
MIME形式(たとえば、「%20」はスペースを表す)、 HTML文字エンティティ ではありません。 Javaプラットフォームには何も存在しないと思います。 this one のように、変換を行う独自のユーティリティクラスを作成できます。
クラスorg.Apache.commons.lang.StringEscapeUtilsを使用できます。
String s = StringEscapeUtils.unescapeHtml("Happy & Sad")
動いています。
標準ライブラリを使用してそれを行う方法を知りません。しかし、htmlエンティティを扱うこのクラスを知っていて使用しています。
"HTMLEntitiesは、特殊文字および拡張文字をHTMLエンティティに変換する静的メソッド(htmlentities、unhtmlentitiesなど)のコレクションを含むオープンソースJavaクラスです。 versa。」
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=htmlentities
または、unescapeHtml4を使用できます。
String miCadena="GUÍA TELEFÓNICA";
System.out.println(StringEscapeUtils.unescapeHtml4(miCadena));
このコードは次の行を出力します:GUÍATELEFÓNICA
@jemが示唆したように、jsoupを使用することは可能です。
JSoup 1.8.3では、元のhtmlを保持するメソッドParser.unescapeEntitiesを使用できます。
import org.jsoup.parser.Parser;
...
String html = Parser.unescapeEntities(original_html, false);
以前のリリースでは、このメソッドは存在しないようです。