
Twinuts
|
Réponse acceptée !
Salut,
tu vois en étant plus explicite sur ta demande c'est tout de suite clair par ce que les "Je cherche l'équivalent de la fonction html_encode(chaine) en php" c'est bien c'est beau mais si tu ne fais pas de php cela veut rien dire !!!
Pour ce que tu demande il n'y a pas d'equivalence dans l'api standard java (cela dis peut etre dans l'api servlet... a voir) sinon voici un exemple pour encoder au format html (j'utilise l'unicode pour rester portable sur differents OS
public class HTTPUtils { private static final HtmlUnicode [] HTML_UNICODE = { new HtmlUnicode( "&", '&' ), new HtmlUnicode( "<", '<' ), new HtmlUnicode( ">", '>' ), new HtmlUnicode( """, '"' ), //MAJUSCULES new HtmlUnicode( "À", '\u00c0' ), new HtmlUnicode( "Á", '\u00c1' ), new HtmlUnicode( "Â", '\u00c2' ), new HtmlUnicode( "Ã", '\u00c3' ), new HtmlUnicode( "Ä", '\u00c4' ), new HtmlUnicode( "Å", '\u00c5' ), new HtmlUnicode( "Æ", '\u00c6' ), new HtmlUnicode( "Ç", '\u00c7' ), new HtmlUnicode( "È", '\u00c8' ), new HtmlUnicode( "É", '\u00c9' ), new HtmlUnicode( "Ê", '\u00ca' ), new HtmlUnicode( "Ë", '\u00cb' ), new HtmlUnicode( "Ì", '\u00cc' ), new HtmlUnicode( "Í", '\u00cd' ), new HtmlUnicode( "Î", '\u00ce' ), new HtmlUnicode( "Ï", '\u00cf' ), new HtmlUnicode( "Ð", '\u00d0' ), new HtmlUnicode( "Ñ", '\u00d1' ), new HtmlUnicode( "Ò", '\u00d2' ), new HtmlUnicode( "Ó", '\u00d3' ), new HtmlUnicode( "Ô", '\u00d4' ), new HtmlUnicode( "Õ", '\u00d5' ), new HtmlUnicode( "Ö", '\u00d6' ), new HtmlUnicode( "Ø", '\u00d8' ), new HtmlUnicode( "Ù", '\u00d9' ), new HtmlUnicode( "Ú", '\u00da' ), new HtmlUnicode( "Û", '\u00db' ), new HtmlUnicode( "Ü", '\u00dc' ), new HtmlUnicode( "Ý", '\u00dd' ), new HtmlUnicode( "Þ", '\u00de' ), new HtmlUnicode( "ß", '\u00df' ), //MNUSCULES new HtmlUnicode( "à", '\u00e0' ), new HtmlUnicode( "á", '\u00e1' ), new HtmlUnicode( "â", '\u00e2' ), new HtmlUnicode( "ã", '\u00e3' ), new HtmlUnicode( "ä", '\u00e4' ), new HtmlUnicode( "å", '\u00e5' ), new HtmlUnicode( "æ", '\u00e6' ), new HtmlUnicode( "ç", '\u00e7' ), new HtmlUnicode( "è", '\u00e8' ), new HtmlUnicode( "é", '\u00e9' ), new HtmlUnicode( "ê", '\u00ea' ), new HtmlUnicode( "ë", '\u00eb' ), new HtmlUnicode( "ì", '\u00ec' ), new HtmlUnicode( "í", '\u00ed' ), new HtmlUnicode( "î", '\u00ee' ), new HtmlUnicode( "ï", '\u00ef' ), new HtmlUnicode( "ð", '\u00f0' ), new HtmlUnicode( "ñ", '\u00f1' ), new HtmlUnicode( "ò", '\u00f2' ), new HtmlUnicode( "ó", '\u00f3' ), new HtmlUnicode( "ô", '\u00f4' ), new HtmlUnicode( "õ", '\u00f5' ), new HtmlUnicode( "ö", '\u00f6' ), new HtmlUnicode( "ø", '\u00f8' ), new HtmlUnicode( "ù", '\u00f9' ), new HtmlUnicode( "ú", '\u00fa' ), new HtmlUnicode( "û", '\u00fb' ), new HtmlUnicode( "ü", '\u00fc' ), new HtmlUnicode( "ý", '\u00fd' ), new HtmlUnicode( "þ", '\u00fe' ), new HtmlUnicode( "ÿ", '\u00ff' ) }; public static String encode(String text) { String tok = ""; for(HtmlUnicode hu : HTML_UNICODE) tok += hu.getUnicode(); StringTokenizer tokenizer = new StringTokenizer(text, tok, true); int count = tokenizer.countTokens();
// pas besoin d'encoder if (count == 1) return text; // on met un buffer plus large vu qu'un caractere est remplace par // plusieurs StringBuilder buff = new StringBuilder(text.length() + count * 8); while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken(); if (token.length() == 1) { for(HtmlUnicode hu : HTML_UNICODE) if(hu.getUnicode() == token.charAt(0)) buff.append(hu.getHtml()); } else { buff.append(token); } } return buff.toString(); } //cette classe permet un acces plus simplifie pour les tableaux private static class HtmlUnicode{ private char unicode; private String html; public HtmlUnicode(String html, char unicode){ this.html = html; this.unicode = unicode; }
/** * @return the html */ public String getHtml() { return html; }
/** * @param html the html to set */ public void setHtml(String html) { this.html = html; }
/** * @return the unicode */ public char getUnicode() { return unicode; }
/** * @param unicode the unicode to set */ public void setUnicode(char unicode) { this.unicode = unicode; } }
}
après pour l'utilisation c'est assez simple : String text = "<html>éèàçbobï</html>"; System.out.println(HTTPUtils.encode(text));
------------------------------------ "On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
WORA
|