diff --git a/org.eclipse.epf.web/src/org/eclipse/epf/web/servlet/SearchServlet.java b/org.eclipse.epf.web/src/org/eclipse/epf/web/servlet/SearchServlet.java
index 068e6a0..7c75e2a 100644
--- a/org.eclipse.epf.web/src/org/eclipse/epf/web/servlet/SearchServlet.java
+++ b/org.eclipse.epf.web/src/org/eclipse/epf/web/servlet/SearchServlet.java
@@ -32,6 +32,9 @@
 
 	private static final long serialVersionUID = 1L;
 
+	private static final String DefaultEncoding = "iso-8859-1";
+	private static final String ServletEncoding = "utf-8";
+
 	private int _hitsPerPage = 10;
 	private static String _indexPath = null;
 	private static String _xslURL;
@@ -70,7 +73,7 @@
 		
 		HttpSession session = request.getSession();		
 		
-		response.setContentType("text/html");
+		response.setContentType("text/html; charset=utf-8");
 		PrintWriter out = response.getWriter();
 
 		_response = response;
@@ -106,6 +109,7 @@
 						out.println(results);
 					}
 				} else {
+					
 					String searchString = request.getParameter("searchString");
 					System.out.println("LD> searchString: " + searchString);
 					
@@ -113,6 +117,9 @@
 						response.sendError(HttpServletResponse.SC_NO_CONTENT);
 						return;
 					}
+					
+					searchString = convert(searchString);
+					
 					//searchString = URLEncoder.encode(searchString, "UTF-8");
 
 					String resultsPerPage = request.getParameter("hitsPerPage");
@@ -135,6 +142,20 @@
 		}
 	}
 
+	private String convert(String str) {
+		try {	
+			byte[] bytes = str.getBytes(DefaultEncoding);
+			String newStr =  new String(bytes, ServletEncoding);
+			
+			System.out.println("convert " + str + " -> " + newStr);
+			return newStr;
+			
+		} catch (Exception ex) {
+			
+		}
+		
+		return str;
+	}
 	/**
 	 * Performs the advanced search.
 	 */
