【问题标题】:ascii to hexadecimal in jsjs中ascii转十六进制
【发布时间】:2014-09-12 05:57:33
【问题描述】:

我正在尝试将 .onion 的 url(公钥信息或其他)转换为类似于人们使用的 AACS 标志的徽标。我认为这是一种创造性的方式来分享 deepweb 链接,同时允许您验证链接的地址。

但是,当代码不起作用时,生活就很糟糕。

这是现场小提琴: http://jsfiddle.net/whitingcameronlinux/th0jrx8h/4/

我需要的是一种在 js 中保留字符的转换,即使它们被转换为十六进制。我想要字符(并且 parseInt toString 技巧没有多大帮助)...

$("#click").click(function () {
        // Grab url (k03rjptlbsi7dq3y.onion)
        //var url = window.location.host;
        // hopefully the same kind of data
        var url = 'ko3rjptlbsi7dq3y.onion';

        // remove .onion
        var onlyurl = url.substr(0, 16);

        // turn into hex
        var hexresult = parseInt(onlyurl).toString();

        // grab hex colors
        var bar0 = "#" + hexresult.substring(0, 6);
        var bar1 = "#" + hexresult.substring(5, 6);
        var bar2 = "#" + hexresult.substring(11, 6);
        var bar3 = "#" + hexresult.substring(17, 6);
        var bar4 = "#" + hexresult.substring(23, 6);

        // remainder goes here
        var plus = "+" + hexresult.substring(29, 2);

        //new elements:
        $("#validate").append("<style id=\"validate\"> #bar0{background-color:" + $bar0 + "}#ba

r1{background-color:" + $bar1 + "}#bar2{background-color:" + $bar2 + "}#bar3{background-color:" + $bar3 + "}#bar4{background-color:" + $bar4 + "}</style>");
            $("#bar4").html($plus);
});

如何转换它们以获得正确数量的信息?

(我知道它们与十六进制不兼容,这就是为什么我必须首先将 ascii 转换为十六进制)

【问题讨论】:

    标签: javascript string hex substring


    【解决方案1】:

    试试这个简单优雅的方法:

    function ascii2hex(str){
      var u=unescape(encodeURIComponent(str))
      return u.split('').map(function(c){return c.charCodeAt(0).toString(16)}).join('')
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2020-11-20
      • 2014-06-22
      • 2018-09-04
      • 1970-01-01
      • 2012-11-14
      • 2015-05-22
      • 2017-08-28
      • 1970-01-01
      相关资源
      最近更新 更多