本帖最后由 CrLf 于 2015-9-27 16:47 编辑
Node.js 输出到屏幕时,默认编码为 utf8,如何改为 unicode?大概类似 cmd 中 CHCP 437 之后再 GRAFTABL 936 的意思
试过下面这些方案,效果都不对,要么汉字上屏后显示为空,要么输出的仍是 utf8 字符串,感觉对 Node 的机制理解有误,求指导- console._stdout._readableState.defaultEncoding = 'utf16le'
- console.log('{测试}')
复制代码
- process.stdout._readableState.defaultEncoding = process.stdin._readableState.defaultEncoding = 'utf16le'
- process.stdout.write('{测试}')
复制代码
- process.stdout.setEncoding('utf16le').write('{测试}')
复制代码
- var iconv = require('iconv-lite'); //刚才忘了加 =_=
-
- output('{测试}')
-
- function output(chunk){
- var chunk = typeof chunk=='string' ? chunk : JSON.stringify(chunk)
- var str = (new Buffer(chunk,'utf8'))
- var buf = new Buffer(iconv.encode(str, 'gbk'),'bin')
- process.stdout.write(buf)
- return
- }
复制代码 ------------------------------------------------------
现在只能加上 iconv 转码来实现:- node xxx.js | iconv -f "utf-8" -t "gb2312"
- node xxx.js | iconv -f "utf-8" -t "gb2312" | more
复制代码 怎样做到不需要 iconv 也能正常显示汉字?- node xxx.js
- node xxx.js | more
复制代码
|