angular-base64
angular-base64 copied to clipboard
Invalid encoding of ö char
My code is simple:
$base64.encode($scope.loginText)
Now if I put ö as loginText then I get 9g== that is invalid. As a reference, and valid, encoding I use java:
import java.util.Base64;
//...
byte[] encode = Base64.getEncoder().encode("ö".getBytes());
System.out.println(new String(encode));
produces 'w7Y=
and python
>>> import base64
>>> base64.b64encode("ö")
'w7Y=
Similar issue for other chars from german language, some from spanish and polish.
Same issue with some characters from alphabet turkish and polish (ex: "Müşteri").
@Koziolek I can encode correctly your "ö". When I encode, I obtain "9g==". My problem is related to "getByte" function in angular-base64.js file because function charCodeAt() return a value greater than 255 and an exception is thrown. If I comment "if" the character is not encoded correctly.
var x = s.charCodeAt(i);
if (x > 255) {
throw "INVALID_CHARACTER_ERR: DOM Exception 5";
}