CNode

【已解决】请问node如何处理字符串‘e2%80%98%e5%89%8d%e7%....’

问答
QQiandaxiang发布于11 年前最后回复11 年前4 回复4193 浏览0 收藏

初学爬虫,总是无法get正确的url。 需要将字符串 '前端实习' 转为 '%E5%89%8D%E7%AB%AF%E5%AE%9E%E4%B9%A0'。 自己写了个蠢方法。

function encoding (str) {
	var buffer = new Buffer(str);
	var gbk = '';
	for (var i = 0;i < buffer.length;i ++) {
		gbk += '%' + buffer[i].toString(16);
	}
	return gbk;
}

function decoding (gbk) {
	var bgbk = gbk.toString().split('%').splice(0,gbk.length);
	var buffer = new Buffer(bgbk.length);
	for (var i = 0;i < buffer.length;i ++) {
		buffer[i] = parseInt(bgbk[i],16);	
	}
	return buffer.toString();
}

后来在论坛中大牛们的帮助得知原来只需要两个原生函数。

encodeURIComponent();//编码
decodeURIComponent();//解码

由此小事观之,基础知识不牢,需倍加努力。 再次感谢回答问题的朋友。

查看回复

回复 (4)

A
alsotang#1·11 年前

encodeURIComponent('‘前端实习’')

D
dayuoba#2·11 年前

@alsotang https://github.com/alsotang/urlencode

Q
Qiandaxiang#3·11 年前

谢谢 @dayuoba

Q
Qiandaxiang#4·11 年前

谢谢@alsotang

参与回复
登录后即可参与回复。登录