base32-js icon indicating copy to clipboard operation
base32-js copied to clipboard

Base32.decode() doesn't work on international alphabet

Open alexreyes opened this issue 7 years ago • 3 comments

This works fine for some strings, but for examples like these I get invalid results:

base32.encode("юзер@екзампл.ком.example.com");

output:

9rvundefinedag206mxundefinedecundefinedw7wxjweundefinedy7gq6ay31dnr6rt9ecdqp

input:

base32.decode(9rvundefinedag206mxundefinedecundefinedw7wxjweundefinedy7gq6ay31dnr6rt9ecdqpu");

results in:

N7ªµÏ\Õ@@5;ªµÏ\×3Uk¹¼?;.;Uk¹¾<.example.com

As you can see, it does not result in the original string when it is decoded. Not sure why.

alexreyes avatar Jun 21 '17 15:06 alexreyes

Yeah, this issue has come up before - it doesn't handle non-ascii data well, which is totally a shortcoming. I just haven't really updated this package in forever - I kind of made it as a proof-of-concept and haven't touched it in a long time. I'm happy to accept a PR to fix this though.

agnoster avatar Jun 22 '17 13:06 agnoster

Yeah, this issue has come up before - it doesn't handle non-ascii data well, which is totally a shortcoming.

Can you please add that as a disclaimer in the readme and the npm page? Not being able to handle non-ascii data is important since primary use case for such encoding is precisely so that the Unicode characters can be made digestible by various data-structures and clients.

ignoramous avatar Jan 09 '20 15:01 ignoramous

Okay, I think you're right about that @ignoramous. I made a PR to include this in the readme (I'm not the maintainer of this project)

alexreyes avatar Jan 10 '20 22:01 alexreyes