繁体   English   中英

Javascript:encodeURI()/ encodeURIComponent()charset

[英]Javascript: encodeURI() / encodeURIComponent() charset

有没有办法在Javascript的encodeURI()或encodeURIComponent()中指定charset? 例如:

encodeURIComponent("例子", "UTF-8")输出%E4%BE%8B%E5%AD%90

encodeURIComponent("例子", "GBK")输出%C0%FD%D7%D3

我的解决方案是使用npm包urlencodebrowserify

写在urlencode.js:

var urlencode = require("urlencode");
module.exports = function (s) { return urlencode(s, "gbk"); }

browserify urlencode.js --s encode > bundle.js

在bundle.js中,声明了一个名为encode的函数。

根据您在修改此问题之前的早期编辑,您似乎正在尝试根据您提交的不同搜索字词访问各种百度百科。 我的答案与你的新JS问题无关,但是对你的旧问题的简单解决方案(并且不需要JS解决方案)是在百度Baike URL中指定字符编码: &enc= 以下所有解决方法都正确:

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与所希望的编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM