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("" + hex[a1] + hex[a2] + hex[a3] + hex[a4] + ";");
} else {
out.append(chars[i]);
}
}
}
return out.toString();
}
}