Hi all ,
i have a problem with encoding and decoding, from a servlet , running on
Tomcat , to Oracle DB.
I hope it is the right forum for that , and i appologize if ti is not ..
 
The problem:
I am using Oracle 8.1.7 DB , in a Charest ISU 8859-9-8 ( Hebrew ), I use a
thin client as the JDBC driver .
I have a servlet that all it does is getting and updating one of the table
 
The character set in the servlet is too , ISO 8859-8 . This is done this
way:
 
public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  
  request.setCharacterEncoding("ISO-8859-8");
  response.setContentType("Text/html; ISO-8859-8");
  .....
} 

I  use the doGet method of a servlet to get parameters to retrieve from
Oracle. this is done through the URL, for example :
I send the parameters like this :
http://localhost:8080/myapp/myapp?name=yair
<http://localhost:8080/myapp/myapp?name=yair&family=fine> &family=fine
for name= yair, family = fine
 
There is no problem in getting and inserting English characters.
There is a problem when i try to get or to insert Hebrew characters.
i get ???? in DB , for both if i write yair in the url in Hebrew , or i
write yair in %E9%E9%E9%F8 which is the decimal representation 
 
For example , if i insert a string in Hebrew , it looks like this "?????" (
in SQL +)

 
this is how i get the requests from the url
Enumeration paramEnum = request.getParameterNames(); // get request
parameters from the url , in param/value pairs
String myParam = (String) paramEnum.nextElement(); //get parameter
String myValue = request.getParameter(myParam);  //get value
 
String myStatment = "insert into mytable values('19', '"+myValue+"')" insert
to table 19 , myvalue
ResultSet rs = stmt.executeQuery(myStatment);
 
does any one have a solution for that ?
 

Reply via email to