the std::locale::classic locale is guaranteed to be available, it's the same as the standard "C" locale. All it really affects for the purposes of the JsonOut class is the decimal separator character used when pushing numbers to the stream with `*stream << n;`. I just didn't want to write my own custom number formatter if this method works well enough.

For the UI, numbers being output in the user's local format is probably mildly desirable.

All our code is currently assuming UTF-8 internally, so non-UTF-8 inscriptions etc. would break a lot of things. UTF-8 will output fine, and non-UTF-8 user-input will cause problems all over the place. I think the only fully-correct solution to that would be to change to using wide characters and wide strings internally. That would require a mega-refactor of pretty much everything… otherwise, conversion from local character set to UTF-8 could be done on input if it turns out to be a problem.

I can't easily test non-UTF-8 locales, so it's one of the things i was leaving to utunnels to work out.