You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					44 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					44 lines
				
				1.4 KiB
			| 
											3 years ago
										 | 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. | ||
|  | 
 |