1 2package org.bouncycastle.i18n.filter; 3 4/** 5 * HTML Filter 6 */ 7public class HTMLFilter implements Filter 8{ 9 10 public String doFilter(String input) 11 { 12 StringBuffer buf = new StringBuffer(input); 13 int i = 0; 14 while (i < buf.length()) 15 { 16 char ch = buf.charAt(i); 17 switch (ch) 18 { 19 case '<': 20 buf.replace(i,i+1,"<"); 21 break; 22 case '>': 23 buf.replace(i,i+1,">"); 24 break; 25 case '(': 26 buf.replace(i,i+1,"("); 27 break; 28 case ')': 29 buf.replace(i,i+1,")"); 30 break; 31 case '#': 32 buf.replace(i,i+1,"#"); 33 break; 34 case '&': 35 buf.replace(i,i+1,"&"); 36 break; 37 case '\"': 38 buf.replace(i,i+1,"""); 39 break; 40 case '\'': 41 buf.replace(i,i+1,"'"); 42 break; 43 case '%': 44 buf.replace(i,i+1,"%"); 45 break; 46 case ';': 47 buf.replace(i,i+1,";"); 48 break; 49 case '+': 50 buf.replace(i,i+1,"+"); 51 break; 52 case '-': 53 buf.replace(i,i+1,"-"); 54 break; 55 default: 56 i -= 3; 57 } 58 i += 4; 59 } 60 return buf.toString(); 61 } 62 63} 64