Decode a string in Java

Dave picture Dave · Mar 23, 2011 · Viewed 7.7k times · Source

How do I properly decode the following string in Java

http%3A//www.google.ru/search%3Fhl%3Dru%26q%3Dla+mer+powder%26btnG%3D%u0420%A0%u0421%u045F%u0420%A0%u0421%u2022%u0420%A0%u0421%u2018%u0420%u040E%u0420%u0453%u0420%A0%u0421%u201D+%u0420%A0%u0420%u2020+Google%26lr%3D%26rlz%3D1I7SKPT_ru

When I use URLDecoder.decode() I the following error

java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u0"

Thanks, Dave

Answer

Vivien Barousse picture Vivien Barousse · Mar 23, 2011

According to Wikipedia, "there exist a non-standard encoding for Unicode characters: %uxxxx, where xxxx is a Unicode value". Continuing: "This behavior is not specified by any RFC and has been rejected by the W3C".

Your URL contains such tokens, and the Java URLDecoder implementation doesn't support those.