我需要的是Java方法或轻量级库,它将特殊字符编码为HTML实体。所以&成为& amp; “变成& quot;£变成& pound;等等。
我说“轻量级”,因为我目前所有的搜索都是Apache Commons Lang StringEscapeUtils类,它完美地完成了这项工作,但是我的程序大小从50Kb增加到350Kb。
Apache Commons Lang库是完美的,除了大小。因此,如果有一种方法可以减小大小(或提取它们用于编码的方法),这将是很好的。否则,如果某人有另一种做同样事情的方法或图书馆,我们将不胜感激。
答案 0 :(得分:0)
你在手机上部署了吗?否则,300 KB就没什么了。
无论如何,要编码的特殊字符不多:<
,>
,&
,"
,'
。如果您使用能够处理所有字符的编码(如UTF-8),则所有其他字符都不需要转义。因此,自己构建这样的方法应该非常容易。
答案 1 :(得分:0)
尝试获取该库的源代码(StringEscapeUtils)并使用必要的源代码。
答案 2 :(得分:0)
如果您对&lt;的名为的实体感到满意。取代。对于字符&gt; 127,&amp;,“和'和数字实体(如&amp;#12345; ),然后java已经知道转换它们.JTextPane处理HTML这样,因为它是不知不觉的编码。
// Minimum overhead:
JTextPane tp = new JTextPane();
tp.setContentType("text/html");
tp.setText(html); // read?
String htmlWithEntities = tp.getText(); // Does this work?
最好使用HTMLEditorKit并创建HTMLDocument。
如果您想避免使用文档对象模型,可以自己轻松完成。见JB Nizet。