HTML编码逃避问题

时间:2014-02-11 16:55:58

标签: html encoding escaping

我正在做一个Android应用程序,我在其中对web服务进行查询,获取JsonObject,并在获得所需的字符串后,我找到如下字符串: est& amp; aacute;

我试过这两个:

StringEscapeUtils.escapeHTML4(text);

& amp; aacute 转换为& amp; amp; aacute

的结果
Html.escapeHtml(test));

哪个什么都没做。

任何想法如何将其转换为á或相应的角色?

2 个答案:

答案 0 :(得分:5)

你说你曾使用过以下内容:

StringEscapeUtils.escapeHTML4(text);

相反试试这个:

StringEscapeUtils.unescapeHTML4(text);

您正在重新编码HTML权利;

此处的文档:

https://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringEscapeUtils.html

// import commons http://commons.apache.org
import org.apache.commons.lang3.StringEscapeUtils;

public static String stripHtml(String str) {
 return StringEscapeUtils.unescapeHtml4(str.replaceAll("<[A-Za-z/].*?>", "")).trim();
}

此外,您可以使用它来解码其他编码类型( JSON ,XML等)或使用它进行编码。


这不是您要求的,但也可能对URL解码有用:

String result = URLDecoder.decode(url, "UTF-8");

API参考:

http://docs.oracle.com/javase/7/docs/api/java/net/URLDecoder.html

答案 1 :(得分:0)

足够了:

String myInitialtext = "est&amp;&aacute;";  
Spanned mysString = Html.fromHtml(myInitialtext);
String result = mysString.toString();

现在result的值为est&á

这是一个类似的问题:

Android string encoding and html entities converting