01: /*
02: * Created on Apr 20, 2003
03: */
04: package net.sf.jportlet.util;
05:
06: /**
07: * HTML helper
08: *
09: * @author <a href="mailto:tchbansi@sourceforge.net">Herve Tchepannou</a>
10: */
11: public class HTMLHelper {
12: //~ Static fields/initializers ---------------------------------------------
13:
14: public static final String NBSP = " ";
15: public static final int CR = 0x0d;
16: public static final int LF = 0x0a;
17: public static final String EMPTY = "";
18: public static final String __codes[] = new String[256];
19:
20: static {
21: for (int i = 0; i < 256; i++) {
22: if (i < 10) {
23: __codes[i] = "�" + i + ";";
24: } else if ((i == CR) || (i == LF)) {
25: __codes[i] = "<br>";
26: } else if (i < 32) {
27: __codes[i] = "�" + i + ";";
28: } else if (i == '&') {
29: __codes[i] = "&";
30: } else if (i == '<') {
31: __codes[i] = "<";
32: } else if (i == '>') {
33: __codes[i] = ">";
34: } else if (i == '\"') {
35: __codes[i] = """;
36: } else if (i >= 128) {
37: __codes[i] = "&#" + i + ";";
38: } else {
39: __codes[i] = String.valueOf((char) i);
40: }
41: }
42: }
43:
44: //~ Methods ----------------------------------------------------------------
45:
46: /**
47: * Encode a string to be HTML readable.
48: * @param str String to encode
49: * @return Encoded string
50: */
51: public static String encode(String str) {
52: if ((str == null) || (str.length() == 0)) {
53: return EMPTY;
54: } else {
55: StringBuffer buff = new StringBuffer();
56: char cur;
57: char prev = 0;
58: for (int i = 0, len = str.length(); i < len; i++) {
59: cur = str.charAt(i);
60:
61: if ((cur == LF) && (i > 0) && (prev == CR)) {
62: } else {
63: buff.append(__codes[cur]);
64: }
65:
66: prev = cur;
67: }
68:
69: return buff.toString();
70: }
71: }
72: }
|