Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 844
user1278265 Avatar asked Sep 16 '26 02:09

user1278265


1 Answers

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"));
like image 157
Kanani Mohit Avatar answered Sep 17 '26 16:09

Kanani Mohit



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!