当前位置:  开发笔记 > 编程语言 > 正文

是否有JDK类来进行HTML编码(但不是URL编码)?

如何解决《是否有JDK类来进行HTML编码(但不是URL编码)?》经验,为你挑选了3个好方法。

我当然熟悉这些java.net.URLEncoderjava.net.URLDecoder课程.但是,我只需要HTML风格的编码.(我不想' '替换'+'等).我不知道在类中构建的JDK只会进行HTML编码.有吗?我知道其他选择(例如,Jakarta Commons Lang'BtringEscapeUtils',但我不想在我需要它的项目中添加另一个外部依赖项.

我希望在最近的JDK(又名5或6)中添加了一些我不知道的JDK.否则我必须自己动手.



1> johnmcase..:

在类中没有内置JDK来实现这一点,但它是Jakarta commons-lang库的一部分.

String escaped = StringEscapeUtils.escapeHtml3(stringToEscape);
String escaped = StringEscapeUtils.escapeHtml4(stringToEscape);

查看JavaDoc

添加依赖项通常就像将jar放到某个地方一样简单,而commons-lang有很多有用的实用程序,通常值得将它放在板上.


正如我在对另一个答案的评论中所说的那样,添加一个依赖项是*NOT*就像在某处删除一个JAR一样简单.律师需要查看第三方JAR的许可证,安装人员需要更改,等等.这并不总是微不足道的.
我也不喜欢对单个方法进行依赖的概念。
请注意,上面的方法签名是错误的.HTML应该有一个小写的tml`String escaped = StringEscapeUtils.escapeHtml(stringToEscape);`

2> 小智..:

一个简单的方法似乎就是这个:

public static String encodeHTML(String s)
{
    StringBuffer out = new StringBuffer();
    for(int i=0; i 127 || c=='"' || c=='<' || c=='>')
        {
           out.append("&#"+(int)c+";");
        }
        else
        {
            out.append(c);
        }
    }
    return out.toString();
}

资料来源:http://forums.thedailywtf.com/forums/p/2806/72054.aspx#72054



3> Eddie..:

显然,答案是"不".遗憾的是,在短期内我不得不做一些事情并且不能为它添加新的外部依赖.我同意每个人使用Commons Lang是最好的长期解决方案.一旦我可以向项目中添加新库,我就会这样做.

令人遗憾的是Java API中没有这种常见用途.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有