![JAR search and dependency download from the Maven repository](/logo.png)
com.cloudinary.utils.HtmlEscape Maven / Gradle / Ivy
package com.cloudinary.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 escapeTags(escapeSpecial(original));
}
/**
* Normal escape function, for Html escaping Strings
*
* @param original The original String
* @return The escape String
*/
public static String escape(String original) {
return escapeBr(escapeTags(escapeSpecial(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("
");
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]) {
// @formatter:off
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; //¢
// @formatter:on
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();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy