11

I am receiving a string that is not properly encoded like mystring%201, where must be mystring 1. How could I replace all characters that could be interpreted as UTF8? I read a lot of posts but not a full solution. Please note that string is already encoded wrong and I am not asking about how to encode char sequence. I asked same issue for iOS few days ago and was solved using stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding. Thank you.

ios UTF8 encoding from nsstring

Community
  • 1
  • 1
Jaume
  • 3,672
  • 19
  • 60
  • 119

3 Answers3

23

You can use the URLDecoder.decode() function, like this:

String s = URLDecoder.decode(myString, "UTF-8");
Martin Stone
  • 12,682
  • 2
  • 39
  • 53
4

Looks like your string is partially URL-encoded, so... how about this:

try {
 System.out.println(URLDecoder.decode("mystring%201", "UTF-8"));
} catch(UnsupportedEncodingException e) {
 e.printStackTrace();
}
nullpotent
  • 9,162
  • 1
  • 31
  • 42
4

I am receiving a string that is not properly encoded like "mystring%201

Well this string is already encoded, you have to decode:

String sDecoded = URLDecoder.decode("mystring%201", "UTF-8");

so now sDecoded must have the value of "mystring 1".

The "Encoding" of String:

String sEncoded = URLEncoder.encode("mystring 1", "UTF-8");

sEncoded must have the value of "mystring%201"

Community
  • 1
  • 1
Jorgesys
  • 124,308
  • 23
  • 334
  • 268