/*
* Enhydra Java Application Server Project
*
* The contents of this file are subject to the Enhydra Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License on
* the Enhydra web site ( http://www.enhydra.org/ ).
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific terms governing rights and limitations
* under the License.
*
* The Initial Developer of the Enhydra Application Server is Lutris
* Technologies, Inc. The Enhydra Application Server and portions created
* by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
* All Rights Reserved.
*
* Contributor(s):
*
* $Id: HtmlEncoder.java,v 1.2 2006-06-15 13:47:01 sinisa Exp $
*/
package com.lutris.util;
/**
* This class contains a utility method for encoding a
* <code>String</code> so that it may be safely embedded within
* a HTML document without affecting the formatting of the
* document.<p>
*
* The following characters are encoded:
* <p>
* <ul>
* <li> <
* <li> >
* <li> &
* <li> '
* <li> "
* <li> \
* <li> …
* </ul>
*
* @author Kyle Clark
*/
public final class HtmlEncoder {
/**
* Translates a string into a HTML safe format.
*
* @param s the string to encode
* @return the encoded string
*/
public static String encode(String s) {
char [] htmlChars = s.toCharArray();
StringBuffer encodedHtml = new StringBuffer();
for (int i=0; i<htmlChars.length; i++) {
switch(htmlChars[i]) {
case '<':
encodedHtml.append("<");
break;
case '>':
encodedHtml.append(">");
break;
case '&':
encodedHtml.append("&");
break;
case '\'':
encodedHtml.append("'");
break;
case '"':
encodedHtml.append(""");
break;
case '\\':
encodedHtml.append("\");
break;
case (char)133:
encodedHtml.append("…");
break;
default:
encodedHtml.append(htmlChars[i]);
break;
}
}
return encodedHtml.toString();
}
}
|