1 package de.java2html.util; 2 3 import java.util.Hashtable ; 4 5 34 public class HtmlUtilities { 35 private static Hashtable entityTableEncode; 36 37 private final static String [] ENTITIES = { 38 " ", " ", "-", "-", "'", "'", "`", "`", 48 "Ü", "Ü", "Ä", "Ä", "Ö", "Ö", "Ë", "Ë", "Ç", "Ç", "Æ", "Æ", "Å", "Å", "Ø", "Ø", 66 "ü", "ü", "ä", "ä", "ö", "ö", "ë", "ë", "ç", "ç", "å", "å", "ø", "ø", "`", "`", "à", "à", "è", "è", "ì", "ì", "ò", "ò", "ù", "ù", "&", "&", """, "\"", "ß", "ß", " ", " ", ">", ">", "<", "<", "©", "(C)", "¢", "¢", "£", "£", "«", "«", "»", "»", "®", "(R)", "·", " - ", "×", " x ", "´", "'", "á", "á", "ú", "ú", "ó", "ó", "é", "é", "í", "í", "ñ", "ñ", "§", "§", "è", "è", "î", "î", "ô", "ô", "â", "â", "û", "û", "ê", "ê", "æ", "æ", "¡", "¡", "—", "-", "—", "-", "’", "'", "’", "'", "‘", "'", "‘", "'", """, "\"", }; 169 private HtmlUtilities() { 170 } 172 173 protected static void buildEntityTables() { 174 entityTableEncode = new Hashtable (ENTITIES.length); 175 176 for (int i = 0; i < ENTITIES.length; i += 2) { 177 if (!entityTableEncode.containsKey(ENTITIES[i + 1])) 178 entityTableEncode.put(ENTITIES[i + 1], ENTITIES[i]); 179 } 180 } 181 182 186 public final static String encode(String s, String ignore) { 187 return encode(s, 0, s.length(), ignore); 188 } 189 190 194 public final static String encode(String s, int start, int end, String ignore) { 195 if (entityTableEncode == null) 196 buildEntityTables(); 197 198 StringBuffer sb = new StringBuffer ((end - start) * 2); 199 char ch; 200 for (int i = start; i < end; ++i) { 201 ch = s.charAt(i); 202 if ((ch >= 63 && ch <= 90) || (ch >= 97 && ch <= 122) || ignore.indexOf(ch) != -1) 203 sb.append(ch); 204 else 205 sb.append(encodeSingleChar(String.valueOf(ch))); 206 } 207 return sb.toString(); 208 } 209 210 213 protected final static String encodeSingleChar(String ch) { 214 String s = (String ) entityTableEncode.get(ch); 215 return (s == null) ? ch : s; 216 } 217 218 222 public final static String toHTML(RGB color) { 223 String red = Integer.toHexString(color.getRed()); 224 String green = Integer.toHexString(color.getGreen()); 225 String blue = Integer.toHexString(color.getBlue()); 226 227 if (red.length() == 1) { 228 red = "0" + red; } 230 if (green.length() == 1) { 231 green = "0" + green; } 233 if (blue.length() == 1) { 234 blue = "0" + blue; } 236 237 return "#" + red + green + blue; } 239 } | Popular Tags |