nodejs中使用$.get 获取html出现中文乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中使用$.get 获取html出现中文乱码相关的知识,希望对你有一定的参考价值。

var $ = require('jquery');
$.get('http://www.jd.com/',function(html)
输出html的时候发现中文都是乱码,不知道大家有谁知道解决办法吗?

npm install -g nodegrass //安装此模块使用
var gs = require('nodegrass');
gs.get('http://www.jd.com', function(data)
console.log(data);//将data输出即使中文

, 'gbk').on('error',funtion(err)
console.log(err);

);
可以查查nodegrass的说明 https://github.com/scottkiss/nodegrass
参考技术A var iconv = require('iconv-lite');
html= iconv.decode(html, 'utf8')

试试这样行不行,我没测试
其实换这个试试
var http= require('http')
http.get(url,function()) 也可以

NodeJS获取GET和POST请求

使用NodeJS获取GET请求,主要是通过使用NodeJS内置的querystring库处理req.url中的查询字符串来进行。

  1. 通过?req.url分解成为一个包含pathquery字符串的数组
  2. 通过querystring.parse()方法,对格式为key1=value1&key2=value2的查询字符串进行解析,并将其转换成为标准的JS对象

const http = require(‘http‘)
const querystring = require(‘querystring‘)

let app = http.createServer((req, res) => {
  let urlArray = req.url.split(‘?‘)
  req.query = {}
  if (urlArray && urlArray.length > 0) {
    if (urlArray[1]) {
      req.query = querystring.parse(urlArray[1])
    }
  }
  res.end(
    JSON.stringify(req.query)
  )
})

app.listen(8000, () => {
  console.log(‘running on 8000‘)
})

NodeJS获取POST数据

NodeJS获取POST数据,主要是通过响应reqdata事件和end事件来进行

  1. 通过req.on(‘data‘),并传入回调函数,响应数据上传的事件,并对数据进行收集
  2. 通过req.on(‘end‘),并传入回调函数,响应数据上传结束的事件,并判断是否存在上传数据。如果存在,就执行后面的逻辑。
    // NodeJS获取POST请求
    const http = require(‘http‘)
    
    let app = http.createServer((req, res) => {
      let postData = ‘‘
      
      req.on(‘data‘, chunk => {
        postData += chunk.toString()
      })
    
      req.on(‘end‘, () => {
        if (postData) {
          res.setHeader(‘Content-type‘, ‘application/json‘)
          res.end(postData)
        }
        console.log(JSON.parse(postData))
      })
      
    })
    
    app.listen(8000, () => {
      console.log(‘running on 8000‘)
    })
    get和post合并
            const url = require(‘url‘);
            const http = require(‘http‘);
            const server = http.createServer((req, res) => {
            if (req.method === ‘GET‘) {
            let urlObj = url.parse(req.url, true);
            res.end(JSON.stringify(urlObj.query))
            } else if (req.method === ‘POST‘) {
            let postData = ‘‘;
            req.on(‘data‘, chunk => {
            postData += chunk;
            })
            req.on(‘end‘, () => {
            console.log(postData)
            })
            res.end(JSON.stringify({
            data: ‘请求成功‘,
            code: 0
            }))
            }
            })
            server.listen(3000, () => {
            console.log(‘监听3000端?‘)
            console.log(1111)
            console.log(22)
            }

    https://www.jianshu.com/p/683894636e72

以上是关于nodejs中使用$.get 获取html出现中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

index.html 尝试加载 css 和脚本时获取 503 状态码 [nodejs + express]

如何在nodejs获取请求中访问axios参数

我可以从 http 模块 .get 响应中获取 nodejs 中的完整 http 响应文本吗?

如何使用 POST , GET 在 Nodejs 中制作搜索框

如何从 Nodejs 获取数据到 Angular 6?

NodeJS获取GET和POST请求