/ / Uri кодує все, включаючи незарезервовані символи - java, android, кодування, utf-8

Uri кодує все, включаючи незаймані символи - java, android, кодування, utf-8

Мені потрібно зіставити базу підписання мого сервера на oauth, яка відсотків кодує все до підписання.

Використовуючи Uri.encode, а не Urlencoder.encode (база, utf-8), кодує пробіл та + "s правильно, проте мені також потрібні незарезервовані символи (" _- !. ~ "() *"), закодовані.

Написати власну утиліту для них не надто важко, але було б непогано, якщо зміна вручну не була б необхідною. Чи вже є утиліта для цього?

Відповіді:

2 для відповіді № 1

Виявляється лише кілька символів, необхідних для додаткового кодування. Для мас:

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;
}