All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy