如何在 html 内容中对特殊字符进行编码

2022-09-03 06:19:09

在Java中,是否有可用的第三方源或快速命令将字符串中的html特殊字符转换为html编码的内容?

例如:

Original code:     <>&abcdef ©
After encoding:    &lt;&gt;&amp;abcdef&copy;

答案 1

如果要将字符串转换为 HTML 实体以快速测试某些内容,可以使用如下所示的 Web 服务:

http://www.primitivetype.com/resources/htmlentities.php

[编辑]对于Java,你可以使用来自Apache Commons Lang的StringEscapeUtils。请参阅此主题:在Java中转义HTML的推荐方法

import static org.apache.commons.lang.StringEscapeUtils.escapeHtml; 
// ... 
String source = "The less than sign (<) and ampersand (&) must be escaped before using them in HTML";
String escaped = escapeHtml(source);

我从上面提到的线程中借用了这个例子。


答案 2

这已经很老了,但它还没有一个公认的答案。这是我的纯java版本:

public String toHTML(String str) {
    String out = "";
    for (char c: str.toCharArray()) {
        if(!Character.isLetterOrDigit(c))
            out += String.format("&#x%x;", (int)c);
        else
            out += String.format("%s", c);

    }
    return out;
}

非常适合 html5 和 utf-8。