fixed search servlet to convert parameters properly
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.
*/