Dear Filip, That solves it, many many thanks. Just a comment if others went into same problem: * request.setCharacterEncoding("ISO-8859-1"); does not solve the problem * getBytes() is not deprecated, it uses the platform's default charset instead. Thanks again, Ahmed Ashour
Filip Hanik - Dev Lists <[EMAIL PROTECTED]> wrote: getBytes() is deprecated for the reason that different VMs/OSs have different default encoding. could that be the cause of your problem? what if you try getBytes("ISO-8859-1") on both platforms, do you still get diff results? Filip Ahmed Ashour wrote: > Dear all, > > I think something is wrong with parsing parameters for get requests with > binary encoding, although request.getCharacterEncoding() is null, the output > is different in red hat linux, consider the following test case: > > ------------ Servlet code ------------ > protected void doGet(HttpServletRequest request, HttpServletResponse res) > throws ServletException, IOException { > System.out.println( "Query String is " + request.getQueryString() ); > String text = request.getParameter( "text" ); > for( byte b : text.getBytes() ) > System.out.print( "0x" + Integer.toHexString( b ) + ' ' ); > } > > ------------ client code ------------ > get( "http://host:port/app/servletname?text=%24%F6%10%30%00" ); > > private static String get(String url) throws IOException { > try { > > URL _url = new URL(url); > InputStream _is = _url.openStream(); > int length = _is.available(); > byte[] _out = new byte[length]; > _is.read(_out, 0, length); > _is.close(); > return new String(_out); > } catch (Exception e) {} > return null; > } > > ------------ end of code ------------ > Windows Output: > > Query String is text=%24%F6%10%30%00 > 0x24 0xfffffff6 0x10 0x30 0x0 > > Linux output: > Query String is text=%24%F6%10%30%00 > 0x24 0xffffffc3 0xffffffb6 0x10 0x30 0x0 > > > version used is: > Using CATALINA_BASE: /usr/tomcat > Using CATALINA_HOME: /usr/tomcat > Using CATALINA_TMPDIR: /usr/tomcat/temp > Using JRE_HOME: /usr/java/jdk1.5.0_06 > Server version: Apache Tomcat/5.5.16 > Server built: Mar 4 2006 08:22:29 > Server number: 5.5.16.0 > OS Name: Linux > OS Version: 2.4.21-32.0.1.ELsmp > Architecture: i386 > JVM Version: 1.5.0_06-b05 > JVM Vendor: Sun Microsystems Inc. > > What do you think the reason for this discripancy? > > Many thanks in advance, > > Yours, > Ahmed Ashour > > > --------------------------------- > Yahoo! Mail > Bring photos to life! New PhotoMail makes sharing a breeze. > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------- Yahoo! Mail Use Photomail to share photos without annoying attachments.