Try to guess if your terminal supports unicode
var hasUnicode =if// the terminal probably has unicode support
var hasUnicode = tryHarder
What we actually detect is UTF-8 support, as that's what Node itself supports. If you have a UTF-16 locale then you won't be detected as unicode capable.
Since at least Windows 7,
powershell have been unicode capable,
but unfortunately even then it's not guaranteed. In many localizations it
still uses legacy code pages and there's no facility short of running
programs or linking C++ that will let us detect this. As such, we
report any Windows installation as NOT unicode capable, and recommend
that you encourage your users to override this via config.
We look at the environment variables
that order. For
LANG, it looks for
.UTF-8 in the value.
LC_CTYPE it looks to see if the value is
UTF-8. This is sufficient
for most POSIX systems. While locale data can be put in
as well, AFAIK it's always copied into the environment.