Problem mit Parameter Übergabe an servlet

Shizzl_chrizzl

Erfahrenes Mitglied
H ich hab n kleines Problem

also ich hab das Formular

HTML:
  <form method='post' name='jumpbox' action='JumpBox' accept-charset='UTF-8'>
 <input type='text' name='topic' size='30'>
 <input type='submit' value='ok'>
 </form>

der Parameter topic wird an das Servlet übergeben

Code:
  String inputParameter = request.getParameter("topic");
  		
 		String cleanedInputParameter =TranslatorReader.cleanLink(inputParameter.trim());
  		response.setContentType("text/html");
  				
 		request.getRequestDispatcher("Wiki.jsp?page="+inputParameter).forward(request, response);

Nun wie man sieht werden die WhiteSpaces über die Methode cleanLink entfernt und anschließend auf eine Seite weitergeleitet.

Das Problem ist nur das der clean Link , Wörter mit Buchstaben wie Ä, Ö usw. kaputt macht, sprich wenn ich ihn einsetze und es kommen Wörter vor wie "Änderungen" geht es nicht. Wenn ich ihn nicht einsetze funktioniert es zwar aber Wörter wie
"Letzte Änderungen" , also Wörter mit einem Whitespace drinnen werden nicht richtig erkannt. WEIS JEMAND RAT

Anschließend noch die cleanLink Methode

Code:
   public static String cleanLink( String link )
  	{
  		StringBuffer clean = new StringBuffer();
  
  		if( link == null ) return null;
  
  		StringTokenizer st = new StringTokenizer( link, " -" );
  
  		while( st.hasMoreTokens() )
  		{
 			StringBuffer component = new StringBuffer(st.nextToken());
  
  		    component.setCharAt(0, Character.toUpperCase( component.charAt(0) ) );
  
  			clean.append( component.toString() );
  		}
  
  		for( int i = 0; i < clean.length(); i++ )
  		{
  			char ch = clean.charAt(i);
  
  			if( !(Character.isLetterOrDigit(ch) ||
 				 PUNCTUATION_CHARS_ALLOWED.indexOf(ch) != -1 ))
  			{
  				clean.deleteCharAt(i);
  			    --i; // We just shortened this buffer.
  			}
  		}
  
  		return clean.toString();
  	}
 
Dein Problem "schreit" nach UTF-8:

Setze am Request mit folgender Methode das Encoding auf "ISO-8859-1":

public void setCharacterEncoding(String)
 
Zurück