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.
Asked
Active
Viewed 3.8k times
11
3 Answers
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
-
so how can use output? – Mahdi Apr 28 '14 at 10:56
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
"