Blame view

node_modules/has-unicode/README.md 1.36 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  has-unicode
  ===========
  
  Try to guess if your terminal supports unicode
  
  ```javascript
  var hasUnicode = require("has-unicode")
  
  if (hasUnicode()) {
    // the terminal probably has unicode support
  }
  ```
  ```javascript
  var hasUnicode = require("has-unicode").tryHarder
  hasUnicode(function(unicodeSupported) {
    if (unicodeSupported) {
      // the terminal probably has unicode support
    }
  })
  ```
  
  ## Detecting Unicode
  
  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.
  
  ### Windows
  
  Since at least Windows 7, `cmd` and `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.
  
  ### Unix Like Operating Systems
  
  We look at the environment variables `LC_ALL`, `LC_CTYPE`, and `LANG` in
  that order.  For `LC_ALL` and `LANG`, it looks for `.UTF-8` in the value. 
  For `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 `/etc/locale.conf`
  as well, AFAIK it's always copied into the environment.