/ / Uri kóduje všetko, vrátane nezachytených znakov - java, android, kódovanie, utf-8

Uri kódovať všetko, vrátane neobmedzených znakov - java, android, kódovanie, utf-8

Musím sa vyrovnať podpisovej základni môjho servera pre protokol oauth, ktorý percentuálny podiel kóduje všetko pred podpisom.

Použitie Uri.encode namiesto Urlencoder.encode (base, utf-8) kóduje správne medzeru a +, ale potrebujem tiež kódované nezachované znaky ("_- !. ~" () * ").

Nie je príliš ťažké písať pre nich vlastný nástroj, ale bolo by pekné, keby nebola potrebná manuálna zmena. Existuje už nejaký nástroj?

odpovede:

2 pre odpoveď č. 1

Ukázalo sa, že len niekoľko znakov vyžaduje ďalšie kódovanie. Pre masy:

public static String encode(String base){
String encoded = Uri.encode(base);
encoded = encoded.replace("(", "%28");
encoded = encoded.replace(")", "%29");
encoded = encoded.replace("!", "%21");
encoded = encoded.replace(""", "%27");
encoded = encoded.replace("*", "%2A");

return encoded;
}