package com.deardhruv.swipevolley.utils; /** * HtmlEscape in Java, which is compatible with utf-8 * * @author Ulrich Jensen, http://www.htmlescape.net Feel free to get inspired, * use or steal this code and use it in your own projects. License: You * have the right to use this code in your own project or publish it on * your own website. If you are going to use this code, please include * the author lines. Use this code at your own risk. The author does not * warrent or assume any legal liability or responsibility for the * accuracy, completeness or usefullness of this program code. */ public class HtmlEscape { private static char[] hex = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; /** * Method for html escaping a String, for use in a textarea * * @param original The String to escape * @return The escaped String */ public static String escapeTextArea(String original) { return escapeSpecial(escapeTags(original)); } /** * Normal escape function, for Html escaping Strings * * @param original The original String * @return The escape String */ public static String escape(String original) { return escapeSpecial(escapeBr(escapeTags(original))); } public static String escapeTags(String original) { if (original == null) return ""; StringBuffer out = new StringBuffer(""); char[] chars = original.toCharArray(); for (int i = 0; i < chars.length; i++) { boolean found = true; switch (chars[i]) { case 60: out.append("<"); break; // < case 62: out.append(">"); break; // > case 34: out.append("""); break; // " default: found = false; break; } if (!found) out.append(chars[i]); } return out.toString(); } public static String escapeBr(String original) { if (original == null) return ""; StringBuffer out = new StringBuffer(""); char[] chars = original.toCharArray(); for (int i = 0; i < chars.length; i++) { boolean found = true; switch (chars[i]) { case '\n': out.append("<br/>"); break; // newline case '\r': break; default: found = false; break; } if (!found) out.append(chars[i]); } return out.toString(); } public static String escapeSpecial(String original) { if (original == null) return ""; StringBuffer out = new StringBuffer(""); char[] chars = original.toCharArray(); for (int i = 0; i < chars.length; i++) { boolean found = true; switch (chars[i]) { case 38: out.append("&"); break; // & case 198: out.append("Æ"); break; // Æ case 193: out.append("Á"); break; // Á case 194: out.append("Â"); break; // Â case 192: out.append("À"); break; // À case 197: out.append("Å"); break; // Å case 195: out.append("Ã"); break; // Ã case 196: out.append("Ä"); break; // Ä case 199: out.append("Ç"); break; // Ç case 208: out.append("Ð"); break; // Ð case 201: out.append("É"); break; // É case 202: out.append("Ê"); break; // Ê case 200: out.append("È"); break; // È case 203: out.append("Ë"); break; // Ë case 205: out.append("Í"); break; // Í case 206: out.append("Î"); break; // Î case 204: out.append("Ì"); break; // Ì case 207: out.append("Ï"); break; // Ï case 209: out.append("Ñ"); break; // Ñ case 211: out.append("Ó"); break; // Ó case 212: out.append("Ô"); break; // Ô case 210: out.append("Ò"); break; // Ò case 216: out.append("Ø"); break; // Ø case 213: out.append("Õ"); break; // Õ case 214: out.append("Ö"); break; // Ö case 222: out.append("Þ"); break; // Þ case 218: out.append("Ú"); break; // Ú case 219: out.append("Û"); break; // Û case 217: out.append("Ù"); break; // Ù case 220: out.append("Ü"); break; // Ü case 221: out.append("Ý"); break; // Ý case 225: out.append("á"); break; // á case 226: out.append("â"); break; // â case 230: out.append("æ"); break; // æ case 224: out.append("à"); break; // à case 229: out.append("å"); break; // å case 227: out.append("ã"); break; // ã case 228: out.append("ä"); break; // ä case 231: out.append("ç"); break; // ç case 233: out.append("é"); break; // é case 234: out.append("ê"); break; // ê case 232: out.append("è"); break; // è case 240: out.append("ð"); break; // ð case 235: out.append("ë"); break; // ë case 237: out.append("í"); break; // í case 238: out.append("î"); break; // î case 236: out.append("ì"); break; // ì case 239: out.append("ï"); break; // ï case 241: out.append("ñ"); break; // ñ case 243: out.append("ó"); break; // ó case 244: out.append("ô"); break; // ô case 242: out.append("ò"); break; // ò case 248: out.append("ø"); break; // ø case 245: out.append("õ"); break; // õ case 246: out.append("ö"); break; // ö case 223: out.append("ß"); break; // ß case 254: out.append("þ"); break; // þ case 250: out.append("ú"); break; // ú case 251: out.append("û"); break; // û case 249: out.append("ù"); break; // ù case 252: out.append("ü"); break; // ü case 253: out.append("ý"); break; // ý case 255: out.append("ÿ"); break; // ÿ case 162: out.append("¢"); break; // ¢ default: found = false; break; } if (!found) { if (chars[i] > 127) { char c = chars[i]; int a4 = c % 16; c = (char) (c / 16); int a3 = c % 16; c = (char) (c / 16); int a2 = c % 16; c = (char) (c / 16); int a1 = c % 16; out.append("&#x" + hex[a1] + hex[a2] + hex[a3] + hex[a4] + ";"); } else { out.append(chars[i]); } } } return out.toString(); } }