2011-12-08 24 views
0

我需要的是將特殊字符編碼爲HTML實體的Java方法或輕量級庫。所以&變成& amp; 「成爲& QUOT;£變得&磅;等什麼是用Java編碼HTML實體的輕量級庫?

我說‘輕量級’,因爲我目前所有搜索發現是Apache Commons Lang中StringEscapeUtils類,它完美地完成這項工作,但會增加我的程序的大小,從到是50 Kb 350Kb

Apache Commons Lang庫除了大小之外都是完美的,所以如果有一種縮小尺寸的方法(或者提取它們用於編碼的方法)將會很棒,否則,如果有人擁有另一個方法或庫,它會做同樣的事情,這將不勝感激。

回答

0

你部署在手機?否則,300 KB是沒有什麼。

反正特殊字符進行編碼並不多:<>&"'。如果您使用能夠處理所有字符的編碼(如UTF-8),則其他所有字符不需要轉義。所以自己建立這樣的方法應該很容易。

0

嘗試獲取該庫(StringEscapeUtils)的源代碼並使用必要的源代碼並非全部。

0

如果你滿足於命名實體<。 >。 &「和」和數字實體(如&#12345;)。對於字符> 127,那麼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。