有没有办法在Javascript的encodeURI()或encodeURIComponent()中指定charset? E.g:
encodeURIComponent("例子", "UTF-8")
输出%E4%BE%8B%E5%AD%90
encodeURIComponent("例子", "GBK")
输出%C0%FD%D7%D3
答案 0 :(得分:2)
我的解决方案是使用npm包urlencode和browserify。
写在urlencode.js:
var urlencode = require("urlencode");
module.exports = function (s) { return urlencode(s, "gbk"); }
browserify urlencode.js --s encode > bundle.js
在bundle.js中,声明了一个名为encode
的函数。
答案 1 :(得分:1)
在修改之前基于earlier edit of this question,您似乎正在尝试根据您提交的不同搜索字词访问各种百度百科。我的答案与你的新JS问题无关,但是对你的旧问题的简单解决方案(并且不需要JS解决方案)是在百度Baike URL中指定字符编码:&enc=
。以下所有内容均正确解决:
答案 2 :(得分:0)
const _encodeURIComponent = (x) =>
x
.split('')
.map((y) => {
if (!RegExp(/^[\x00-\x7F]*$/).test(y)) {
return iconv
.encode(y, encoding)
.reduce((a, b) => a + '%' + b.toString(16), '')
.toUpperCase();
} else {
return y;
}
})
.join('');
用所需的编码替换encoding