Hallo,
Ich arbeite an einem Programm für Java (PC) und Android.
Ich nutze die Klasse URLEncoder nachdem ich einen String mit Base64 encodiert habe so:
PC:
Code
public static String encBase64Url(String s) {
try {
return URLEncoder.encode(Base64.getEncoder().encodeToString(s.getBytes("UTF-8")), "UTF-8");
} catch (UnsupportedEncodingException e) {
System.err.println("Error: " + e.getMessage());
return null;
}
}
Android:
Code
public static String encBase64Url(String s) {
try {
return URLEncoder.encode(Base64.encodeToString(s.getBytes("UTF-8"), Base64.DEFAULT), "UTF-8");
} catch (UnsupportedEncodingException e) {
return null;
}
}
Das Problem ist nur, dass bei gleicher Eingabe nicht das selbe zurück gegeben wird.
z.B.:
Eingabe:
"oinawdinaifiurb"
Ausgaben:
PC:
"b2luYXdkaW5haWZpdXJi"
Android:
"b2luYXdkaW5haWZpdXJi%0A"
Bei Android hängt da noch "%0A" mit drann, was am PC nicht der Fall ist. Wie kann man das beheben?