nodejs中使用$.get 获取html出现中文乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中使用$.get 获取html出现中文乱码相关的知识,希望对你有一定的参考价值。
var $ = require('jquery');
$.get('http://www.jd.com/',function(html)
输出html的时候发现中文都是乱码,不知道大家有谁知道解决办法吗?
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
中的查询字符串来进行。
- 通过
?
将req.url
分解成为一个包含path
和query
字符串的数组 - 通过
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数据,主要是通过响应req
的data
事件和end
事件来进行
- 通过
req.on(‘data‘)
,并传入回调函数,响应数据上传的事件,并对数据进行收集 - 通过
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) }
以上是关于nodejs中使用$.get 获取html出现中文乱码的主要内容,如果未能解决你的问题,请参考以下文章
index.html 尝试加载 css 和脚本时获取 503 状态码 [nodejs + express]
我可以从 http 模块 .get 响应中获取 nodejs 中的完整 http 响应文本吗?