user1278265
user1278265

Reputation: 41

Character is corrupted when use request.getParameter() in java

I have a web page where I do a search based on the text given in a text box. This text can be in any language like japanese, chinese etc (or any mbcs character).

Now when i enter a text in japanese (or any other mbcs character), the result populates the screen (form) with some wierd characters.

For Example: testテスト will turn into testãã¹ã.

When i see the post parameters in Firebug (debugging tool) i can see that the search string goes as testテスト however when i put debug statements in my code, i can see that request.getParameter("searchString") is not able to identify the japanese characters and turn them into some wierd chars.

My JSP header already has <%@ page contentType="text/html; charset=UTF-8"

I have also tried putting pageEncoding="UTF-8" in this but it didn't help.

I tried setting character encoding like request.setCharacterEncoding("UTF-8") also just before doing request.getParameter but that too didn't work for me.

After going through a few forums and blogs i also tried setting useBodyEncodingForURI=true in the <Connector> of tomcat config but that also did not help me.

Can anybody suggest me something to resolve this issue?

Upvotes: 3

Views: 2159

Answers (1)

Kanani Mohit
Kanani Mohit

Reputation: 26

set the following encoding in every servlet/ action

 response.setContentType("UTF-8");
 response.setCharacterEncoding("UTF-8");
 request.setCharacterEncoding("UTF-8");

also set following in first servlet/action

for japanese

response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
session.setAttribute(Globals.LOCALE_KEY, new Locale("jp", "ja_JP"));

Upvotes: 1

Related Questions