RE: URL-encode international characters in Java?

URL encoding encodes bytes, not characters. The character encoding is a
separate, independent layer.

Vinod is probably referring to the ECMAScript Escape() function which
encodes every non-Latin1 character like %uxxxx where xxxx is the Unicode
code point in hex characters.
http://msdn.microsoft.com/scripting/JScript/doc/jsglobalescape.htm

I don't consider the ECMAScript method a valid, recognized URL encoding and
as far as I know, ECMAScript is the only service where this escaping method
is implemented.

IE5 and later will submit characters that don't fit the form document
charset like HTML numeric character references &#nnnnn;. The bytes with the
us-ascii representations &, # and ; are URL reserved bytes so they will be
URL escaped as %25, %23 and %3B resp.
Characters that do fit the form document charset undergo simple URL encoding
per byte.


-----Original Message-----
From: Vinod Balakrishnan [mailto:vinod@filemaker.com]
Sent: Thursday, July 06, 2000 1:52 PM
To: Lenny Turetsky; 'www-international@w3c.org';
'servlet-interest@java.sun.com'
Subject: Re: URL-encode international characters in Java?


You can encode Big-5 and other double byte script characters in UTF16. I 
have seen IE5 is encoding the URLs with "%u" prefix for UTF16. But in 
case of UTF8 we don't have any standard prefix for representing that yet.

-Vinod

>Hi all,
> 
>Is there a standard way to URL-encode non-English characters in Java? For
>example, I know that '?' is URL-encoded as '%3F', but I don't know how or
if
>Big-5 characters can be URL-encoded. I've experimented a bit, and found
that
>IE will encode things differently based on the charset of the HTML doc
which
>contains the form.
> 
>Ideally, I'd like to use functionality available in Java Servlets, or
>another Java code library, but any solutions would be much appreciated.
I've
>looked at Java's java.net.URLEncoder class, but it's encode() method won't
>do it, as documented in the JDC's bug database (
>http://developer.java.sun.com/developer/bugParade/bugs/4257115.html
><http://developer.java.sun.com/developer/bugParade/bugs/4257115.html> ).
> 
>Is the only known solution to write my own encoder? If so, where can I find
>a list of the character's that *don't* need to be encoded? Is it just
>[A-Za-z0-9_]?
> 
>Thanks,
>Lenny Turetsky
>

Received on Thursday, 6 July 2000 20:05:59 UTC