This article may shed some light on your problem.. http://www.javaworld.com/javaworld/jw-04-2004/jw-0419-multibytes.html?
Mark Thomas wrote:
Try specifying the encoding in your client as as "windows-1255"
Mark
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Sunday, April 25, 2004 6:28 PM
To: [EMAIL PROTECTED]
Subject: RE: Getting a request in a non English character
Mark,
Your client and servlet works!! Thanks.
Now I have only one request,
I tried to modify the client, that instead of preparing a predefined line:
String data = "name=" + URLEncoder.encode("\u05d9\u05d0\u05d9\u05e8",
"cp1255");
The client will read a file that is written in a windows -1255 encoding
BufferedReader bri = new BufferedReader(new InputStreamReader(new
FileInputStream("request"),"Cp1255"));
String line = bri.readLine(); //
read just one line from hebrew request text String data = URLEncoder.encode(line, "cp1255");
And this some how doesn't work ,
Any suggestions?
Regard Yair
-----Original Message-----
From: Mark Thomas [mailto:[EMAIL PROTECTED] Sent: Sunday, April 25, 2004 5:09 PM
To: 'Tomcat Users List'
Subject: RE: Getting a request in a non English character
Got this working. Mainly just the issue of the encoding that was being used
for
the response from the servlet. You need to be careful with the names of the
encoding as they can differ between operating systems. My recommendation
would
be to always use UTF-8. My version of your servlet and client are below.
Hope this helps
Mark
SERVLET ======= package test.encoding;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class Echo extends HttpServlet {
public Echo() { super(); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response); }
public void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("cp1255");
response.setContentType("text/html; charset=windows-1255");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
out.println(name);
}
}
CLIENT ====== package test.encoding;
import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder;
public class Client {
public static void main(String[] args) {
try { String host = "localhost";
String port = "8080";
// the unicode for "Yair" in hebrew.
String data = "name=" +
URLEncoder.encode("\u05d9\u05d0\u05d9\u05e8", "cp1255");
// URL test = new
URL("http://"+host+":"+port+"/Bugfix/encoding/bug14742Output.jsp");
URL test = new
URL("http://"+host+":"+port+"/Bugfix/servlet/Echo");
URLConnection req = test.openConnection();
req.setDoOutput(true);
req.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded; charset=windows-1255");
req.setRequestProperty("Content-Length",
Integer.toString(data.length()));
OutputStream out = req.getOutputStream();
// writing the request in Cp1255 encoding.
out.write(data.getBytes("cp1255"));
out.close();
InputStream in = req.getInputStream();
// reading the response in Cp1255 encoding.
BufferedReader br = new BufferedReader(new
InputStreamReader(in));
// instead of getting my name in hebrew . I get "????" four
times
0xF9 in the text file in.txt
File f = new File("in.txt");
FileWriter fw = new FileWriter(f);
int code;
while ((code = br.read()) != -1) {
System.out.println(code);
fw.write(code);
}
fw.close(); } catch (Exception e) {
e.printStackTrace();
}
} }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- (�`�.��.���`�.��.���`�.��.���`�.��.���`�.��.���`�.��.���`�.��.���) The early bird gets the worm, but the second mouse gets the cheese... ICQ 1202948 (�`�.��.���`�.��.���`�.��.���`�.��.���`�.��.���`�.��.���`�.��.���)
