On Sat, 23 Jun 2018 09:42:29 -0400, Richard Damon wrote: > On 6/23/18 9:05 AM, Marko Rauhamaa wrote:
>> Ok. Here's a value for you: >> >> 100€ >> >> I see '1', '0', '0', '€'. What do you see in your locale (LC_MONETARY)? > > If I processed that on my system I would either get $100, or an error of > wrong currency symbol depending on the error checking. Then your system is so unbelievably broken that it should be nuked from orbit, just to be sure. The data you were given was 100 Euros. If your system is incapable of reading that as 100 Euros, and errors out, then at least to know that it is brain-damaged and useless. But if instead it silently changes the data to $100 (US dollars? Australian dollars? Zimbabwe dollars? the gods only know what a system that broken might do...) then it is not only broken but *dangerously* broken. [...] > Locale predates UCS-2, it was the early attempt to provide > internationalization to C code so even programmers who didn't think > about it could add the line setlocale(LC_ALL, "") and make their code > work at least mostly right in more places. A single global was quick and > simple, and since threads didn't exist, not an issue. Threads were first used in 1967, five years before C even existed. https://en.wikipedia.org/wiki/Thread_%28computing%29#History -- Steven D'Aprano "Ever since I learned about confirmation bias, I've been seeing it everywhere." -- Jon Ronson -- https://mail.python.org/mailman/listinfo/python-list