本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(4)

node os.hostname() 获取中文主机名乱码

发布于2021-03-07 22:44     阅读(1695)     评论(0)     点赞(9)     收藏(2)


node os.hostname() 获取中文主机名乱码

如果电脑主机名含有中文,在使用nodeos模块的hostname()方法获取到的主机名有可能会乱码,无论怎么转码都不对。于是本文不采用node提供的hostname()方法来获取主机名。取而代之的是采用cmdhostname命令来获取主机名。

相关依赖

方法封装

exports.getHostname = (cb) => {
  cb = cb || function () {} // 赋默认值,以防调用getHostname方法时没传回调函数而报错
  const iconv = require('iconv-lite') // 用于把获取到的中文从GB18030编码转为UTF-8编码
  const { spawn } = require('child_process') // 用于执行CMD命令
  const hostnameProcess = spawn('cmd', ['/c', 'hostname']) // 执行CMD命令,并且传入参数'hostname'

  // 子进程标准输出,由于该输出是异步,所以需要回调函数cb
  hostnameProcess.stdout.on('data', function (data) {
    const buf = iconv.decode(data, 'GB18030')
    const hostname = iconv.encode(buf, 'UTF-8').toString().trim()
    cb(hostname) // 回调函数中传出hostname
  })
}

方法使用

const { getHostname } = require('./getHostname.js')

getHostname((hostname) => {
  console.log(hostname)
})



所属网站分类: 技术文章 > 博客

作者:天使的翅膀

链接:http://www.qianduanheidong.com/blog/article/33577/81e168a217ffbbd775a5/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)