Hush
Hush

Reputation: 145

Java (Android) UTF-8 character in string

here's my problem, I am receiving a string from a soap Webservice which seems to contain UTF8 encoded %c3%89. This string is a URL i have to reach to get a picture that contains a part of the URL in it.

My problem is that the server generating the picture doesn't recognize the %c3%89 encoding and thus doesn't create the right . When replaced with it's normal representation (i.e É) the server is generating the picture correctly.

My question is: How can i replace the encoded character in the string?

Ps: I don't have access to the server side

here's my code

URL aURL = new URL(URLDecoder.decode(url)); URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); bm = BitmapFactory.decodeStream(bis);

Thanks a lot :)

Hush

Upvotes: 2

Views: 5639

Answers (2)

Hush
Hush

Reputation: 145

I just realized that the URL was perfectly understood by the website when using earlier version of android (lets say before 2.2) I start to wonder what has changed in the urlconnection framework since that version... anyway i will try to pass through this problem by hosting the required picture on the webservice rather than returning the url.

Thank you

Upvotes: 0

BalusC
BalusC

Reputation: 1109570

You need to pass the character encoding as 2nd argument to URLDecoder#decode(), otherwise it will use the platform default character encoding.

System.out.println(URLDecoder.decode("%c3%89", "ISO-8859-1")); // Ã?
System.out.println(URLDecoder.decode("%c3%89", "UTF-8")); // É

Upvotes: 4

Related Questions