使用Java标准库将HTML字符转换回文本
我想使用Java标准库将一些HTML字符转换回文本。我想知道是否有图书馆能达到我的目的使用Java标准库将HTML字符转换回文本,java,html,html-entities,Java,Html,Html Entities,我想使用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
/**
* @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) {
}
}
我不知道用标准库做这件事的任何方法。但是我知道并使用这个类来处理html实体 HTMLEntities是一个开源Java类,它包含一组静态方法(HTMLEntities、UnhtmEntities等),用于将特殊字符和扩展字符转换为HTML实体,反之亦然
我不知道用标准库做这件事的任何方法。但是我知道并使用这个类来处理html实体 HTMLEntities是一个开源Java类,它包含一组静态方法(HTMLEntities、UnhtmEntities等),用于将特殊字符和扩展字符转换为HTML实体,反之亦然
只处理
应用程序/x-www-form-urlencoded
MIME格式(例如,“%20”表示空格),而不处理。我认为Java平台上没有任何东西可以做到这一点。您可以编写自己的实用程序类来进行转换,例如。只处理应用程序/x-www-form-urlencoded
MIME格式(例如“%20”表示空间),而不处理。我认为Java平台上没有任何东西可以做到这一点。您可以编写自己的实用程序类来进行转换,例如。URL解码器应仅用于解码“application/x-www-form-urlencoded”mime类型中html表单生成的URL中的字符串。这不支持html字符
一段时间后,我在库中找到了一个类。URL解码器应仅用于解码“application/x-www-form-urlencoded”mime类型中html表单生成的URL中的字符串。这不支持html字符
经过一段时间后,我在库中找到了一个类。我认为Apache Commons Lang库的
StringEscapeUtils.unescapeHtml3()
和unescapeHtml4()
方法就是您要寻找的。请参阅。我认为Apache Commons Lang库的StringEscapeUtils.unescapeThl3()
和unescapeThl4()
方法就是您要寻找的。请参阅。这里,您只需在应用程序的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的链接:在这里,您只需在应用程序的libJSOUP中添加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的链接:正如@jem所建议的,可以使用jsoup 在JSOUP1.8.3中,可以使用Parser.unescapeEntities方法来保留原始html
import org.jsoup.parser.Parser;
...
String html = Parser.unescapeEntities(original_html, false);
在以前的一些版本中,似乎没有这种方法。正如@jem所建议的,可以使用jsoup 在JSOUP1.8.3中,可以使用Parser.unescapeEntities方法来保留原始html
import org.jsoup.parser.Parser;
...
String html = Parser.unescapeEntities(original_html, false);
在以前的一些版本中,似乎不存在此方法。您可以使用org.apache.commons.lang.StringEscapeUtils类:
String s = StringEscapeUtils.unescapeHtml("Happy & Sad")
它正在工作。您可以使用org.apache.commons.lang.StringEscapeUtils类:
String s = StringEscapeUtils.unescapeHtml("Happy & Sad")
它正在工作。或者您可以使用unescapethml4:
String miCadena="GUÍA TELEFÓNICA";
System.out.println(StringEscapeUtils.unescapeHtml4(miCadena));
此代码打印行:
GUÍA TELEFÓNICA或者您可以使用unescapeHtml4:
String miCadena="GUÍA TELEFÓNICA";
System.out.println(StringEscapeUtils.unescapeHtml4(miCadena));
此代码打印行:
GUÍA TELEFÓNICA最新的url:不是为了打败一匹死马,但OP要求的是如何在HTML实体和“纯”文本(对我来说是ASCII,但是YMMV)之间进行翻译。上面的Jakarta库有unescapeHTML(和escapeHTML),这就实现了这一点。URLDecoder仍然适用于百分比编码URL字符串(如GET参数)。在Android的情况下,这将如何支持?最好给出主URL,可以删除特定版本;)=>StringEscapeUtils不推荐使用。下面的回答现在是最正确的。最新的url:不是为了打败一匹死马,但OP要求的是如何在HTML实体和“纯”文本(对我来说是ASCII,但是是YMMV)之间进行翻译。上面的Jakarta库有unescapeHTML(和escapeHTML),这就实现了这一点。URLDecoder仍然适用于百分比编码URL字符串(如GET参数)。在Android的情况下,这将如何支持?最好给出主URL,可以删除特定版本;)=>StringEscapeUtils不推荐使用。下面的回答现在是最正确的。非常好的库,现在很容易做像非常好的库这样的事情,现在很容易做像这样的事情应该是公认的答案。没有其他库比惊人的Jsoup.Awesome更快、更容易导入。这就是答案。这应该是公认的答案。没有其他库比惊人的Jsoup.Awesome更快、更容易导入。这就是答案。我更喜欢这个解决方案。如果可能,我建议使用apachelibs。(我的意见)我更喜欢这个解决方案。如果可能,我建议使用apachelibs。(我的意见)