top | item 24403272

(no title)

keithlfrost | 5 years ago

I have only one complaint about this Base32 encoding choice, and it stems from the fact that I prefer to encode Base32 using lower case letters, instead of the choice made here to make upper case canonical. When using lower case, the main source of possible confusion is that it can be difficult to tell l and 1 apart, as in l1l1l1l... and this scheme uses both l (canonically "L") and 1.

discuss

order

sedatk|5 years ago

Crockford's Base32 already does that. I/l/1 are all synonyms.

edoceo|5 years ago

Hmm, other base32 system avoid that by not including I and L (and O) - and some other refs I've read (ULID comes to mind) say produce UPPER output but accept either case input.

And, like this spec, the values are aliases so 0/o are the same, 1/I/l are the same, etc

https://github.com/ulid/spec

keithlfrost|5 years ago

Yes. I'm surprised the author would be more concerned about confusion between U/V (or u/v) than between 1/l ... the former has always seemed relatively far-fetched to me, whereas depending on the font, the latter can be a real problem. Again, I attribute the issue to the choice of upper case as canonical, because L is not easily confused with any other letter or number.