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;
}
}