package br.com.citframework.util; /** * Faz o encoding do html * Rodrigo Pecci Acorse / 03/12/2013 / Adicionado outros tratamentos de caracteres e para crase * */ public class UtilHTML { public static final String encodeHTML(String string) { if (string == null) { return ""; } char c; int length = string.length(); StringBuilder encoded = new StringBuilder(2 * length); for (int i = 0; i < length; i++) { c = string.charAt(i); switch (c) { case '�': encoded.append("¹"); break; case '�': encoded.append("²"); break; case '�': encoded.append("³"); break; case '�': encoded.append("º"); break; case '�': encoded.append("°"); break; case '�': encoded.append("ç"); break; case '�': encoded.append("Ç"); break; case '�': encoded.append("<sup>a</sup>"); break; case '�': encoded.append("ñ"); break; case '�': encoded.append("Ñ"); break; case '�': encoded.append("ý"); break; case '�': encoded.append("Ý"); break; case '!': encoded.append("!"); break; case '#': encoded.append("#"); break; case '*': encoded.append("*"); break; case '+': encoded.append("+"); break; case '-': encoded.append("-"); break; case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "acute;"); break; case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "circ;"); break; case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "tilde;"); break; case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "grave;"); break; default: encoded.append(c); break; } } String strRet = encoded.toString(); strRet = strRet.replaceAll(" ", "  "); return strRet; } public static final String encodeHTMLComEspacos(String string) { if (string == null) { return ""; } char c; int length = string.length(); StringBuilder encoded = new StringBuilder(2 * length); for (int i = 0; i < length; i++) { c = string.charAt(i); switch (c) { case '�': encoded.append("¹"); break; case '�': encoded.append("²"); break; case '�': encoded.append("³"); break; case '�': encoded.append("º"); break; case '�': encoded.append("°"); break; case '�': encoded.append("ç"); break; case '�': encoded.append("Ç"); break; case '�': encoded.append("<sup>a</sup>"); break; case '�': encoded.append("ñ"); break; case '�': encoded.append("Ñ"); break; case '�': encoded.append("ý"); break; case '�': encoded.append("Ý"); break; case '!': encoded.append("!"); break; case '#': encoded.append("#"); break; case '*': encoded.append("*"); break; case '+': encoded.append("+"); break; case '-': encoded.append("-"); break; case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "acute;"); break; case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "circ;"); break; case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "tilde;"); break; case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': case '�': encoded.append("&" + getLetraCorrespondente(c) + "grave;"); break; default: encoded.append(c); break; } } String strRet = encoded.toString(); return strRet; } /** * Pega a letra correspondente ao caracter. Para gerar o codigo HTML * correspondente. * * Rodrigo Pecci Acorse / 03/12/2013 / Adicionado outros tratamentos para crase * * @param c * @return */ public static String getLetraCorrespondente(char c) { if (c == '�' || c == '�' || c == '�') { return "a"; } if (c == '�') { return "a"; } else if (c == '�' || c == '�' || c == '�') { return "A"; } else if (c == '�') { return "A"; } else if (c == '�' || c == '�' || c == '�') { return "e"; } else if (c == '�' || c == '�' || c == '�') { return "E"; } else if (c == '�' || c == '�' || c == '�') { return "i"; } else if (c == '�' || c == '�' || c == '�') { return "I"; } else if (c == '�' || c == '�' || c == '�' || c == '�') { return "o"; } else if (c == '�' || c == '�' || c == '�' || c == '�') { return "O"; } else if (c == '�' || c == '�' || c == '�') { return "u"; } else if (c == '�' || c == '�' || c == '�') { return "U"; } else { char auxChar[] = new char[1]; auxChar[0] = c; String aux = new String(auxChar); return aux; } } public static final String decodeHTML(String msg) { msg = msg.replaceAll(" ", " "); msg = msg.replaceAll("ç", "�"); msg = msg.replaceAll("Ç", "�"); msg = msg.replaceAll("á", "�"); msg = msg.replaceAll("Á", "�"); msg = msg.replaceAll("é", "�"); msg = msg.replaceAll("É", "�"); msg = msg.replaceAll("í", "�"); msg = msg.replaceAll("Í", "�"); msg = msg.replaceAll("ó", "o"); msg = msg.replaceAll("Ó", "�"); msg = msg.replaceAll("ú", "�"); msg = msg.replaceAll("Ú", "�"); msg = msg.replaceAll("â", "�"); msg = msg.replaceAll("Â", "�"); msg = msg.replaceAll("ê", "�"); msg = msg.replaceAll("Ê", "�"); msg = msg.replaceAll("î", "�"); msg = msg.replaceAll("Î", "�"); msg = msg.replaceAll("ô", "�"); msg = msg.replaceAll("Ô", "�"); msg = msg.replaceAll("û", "�"); msg = msg.replaceAll("Û", "�"); msg = msg.replaceAll("ã", "�"); msg = msg.replaceAll("Ã", "�"); msg = msg.replaceAll("õ", "�"); msg = msg.replaceAll("Õ", "�"); msg = msg.replaceAll("à", "�"); msg = msg.replaceAll("À", "�"); msg = msg.replaceAll("è", "�"); msg = msg.replaceAll("È", "�"); msg = msg.replaceAll("ì", "�"); msg = msg.replaceAll("Ì", "�"); msg = msg.replaceAll("ò", "o"); msg = msg.replaceAll("Ò", "�"); msg = msg.replaceAll("ù", "�"); msg = msg.replaceAll("Ù", "�"); return msg; } public static final String retiraFormatacaoHTML(String str) { str = str.replaceAll("<p>", ""); str = str.replaceAll("</p>", ""); str = str.replaceAll("<br>", "\n"); str = str.replaceAll("</br>", "\n"); str = str.replaceAll("<br />", "\n"); str = str.replaceAll("<br/>", "\n"); str = str.replaceAll("<b>", ""); str = str.replaceAll("</b>", ""); str = str.replaceAll("<i>", ""); str = str.replaceAll("</i>", ""); str = str.replaceAll("<s>", ""); str = str.replaceAll("</s>", ""); str = str.replaceAll("<u>", ""); str = str.replaceAll("</u>", ""); str = str.replaceAll("<em>", ""); str = str.replaceAll("</em>", ""); str = str.replaceAll("<strong>", ""); str = str.replaceAll("</strong>", ""); str = str.replaceAll("<span>", ""); str = str.replaceAll("</span>", ""); str = str.replaceAll("<html>", ""); str = str.replaceAll("<body>", ""); str = str.replaceAll("<head>", ""); str = str.replaceAll("<font>", ""); str = str.replaceAll("</font>", ""); return str; } }