GitHub 的 base64 编码如何解码?

请看链接:https://api.github.com/repos/...

结果是:

{
  "sha": "6db22a37418465d397c70776202fc9e4fbbdeedf",
  "size": 1033,
  "url": "https://api.github.com/repos/hanzichi/leetcode/git/blobs/6db22a37418465d397c70776202fc9e4fbbdeedf",
  "content": "Ly8gU291cmNlIDogaHR0cHM6Ly9sZWV0Y29kZS5jb20vcHJvYmxlbXMvM3N1\nbS1jbG9zZXN0LwovLyBBdXRob3IgOiBIYW4gWmljaGkKLy8gRGF0ZSAgIDog\nMjAxNi0wMi0wNAoKLyoqCiAqIEBwYXJhbSB7bnVtYmVyW119IG51bXMKICog\nQHBhcmFtIHtudW1iZXJ9IHRhcmdldAogKiBAcmV0dXJuIHtudW1iZXJ9CiAq\nLwoKZnVuY3Rpb24gYmluYXJ5U2VhcmNoKGEsIHRhcmdldCkgewogIHZhciBz\ndGFydCA9IDAKICAgICwgZW5kID0gYS5sZW5ndGggLSAxOwoKICB3aGlsZShz\ndGFydCA8PSBlbmQpIHsKICAgIHZhciBtaWQgPSB+figoc3RhcnQgKyBlbmQp\nID4+IDEpOwogICAgaWYgKGFbbWlkXSA+PSB0YXJnZXQpCiAgICAgIGVuZCA9\nIG1pZCAtIDE7CiAgICBlbHNlIAogICAgICBzdGFydCA9IG1pZCArIDE7CiAg\nfQoKICByZXR1cm4gc3RhcnQ7Cn0KCgp2YXIgdGhyZWVTdW1DbG9zZXN0ID0g\nZnVuY3Rpb24obnVtcywgdGFyZ2V0KSB7CiAgbnVtcy5zb3J0KGZ1bmN0aW9u\nKGEsIGIpIHsKICAgIHJldHVybiBhIC0gYjsKICB9KTsKCiAgdmFyIGxlbiA9\nIG51bXMubGVuZ3RoOwogIHZhciBhbnMgPSBJbmZpbml0eTsKCiAgZm9yICh2\nYXIgaSA9IDA7IGkgPCBsZW47IGkrKykKICAgIGZvciAodmFyIGogPSBpICsg\nMTsgaiA8IGxlbjsgaisrKSB7CiAgICAgIHZhciBhID0gdGFyZ2V0IC0gbnVt\nc1tpXSAtIG51bXNbal07CiAgICAgIHZhciBwb3MgPSBiaW5hcnlTZWFyY2go\nbnVtcywgYSk7CiAgICAgIAogICAgICBmb3IgKHZhciBrID0gTWF0aC5tYXgo\nMCwgcG9zIC0gMSk7IGsgPD0gTWF0aC5taW4ocG9zICsgMCwgbGVuIC0gMSk7\nIGsrKykgewogICAgICAgIGlmIChrID09PSBpIHx8IGsgPT09IGopIAogICAg\nICAgICAgY29udGludWU7CgogICAgICAgIHZhciBzdW0gPSBudW1zW2ldICsg\nbnVtc1tqXSArIG51bXNba107CiAgICAgICAgaWYgKE1hdGguYWJzKHN1bSAt\nIHRhcmdldCkgPCBNYXRoLmFicyhhbnMgLSB0YXJnZXQpKQogICAgICAgICAg\nYW5zID0gc3VtOwogICAgICB9CgogICAgfQoKICByZXR1cm4gYW5zOwp9Ow==\n",
  "encoding": "base64"
}

content 的内容是 base64 编码的?但是如何解码?试了 base64 解码有问题,求教老司机

直接在控制台 atob 是可以的,但是我把字符串赋值到文本框,然后 JavaScript 获取文本框内容,再 atob 却不行,看了下直接在控制台的字符串 n 直接转换为了空行,而从文本框获取的内容,n 被当做了字符串,那有什么办法能解决这个问题?不能 replace 掉再 添加换行吧?

补充下,因为有中文,最后用 decodeURIComponent(escape(window.atob(res.data.content))) 解决了

阅读 5.3k
4 个回答

window.atob()
clipboard.png

echo base64_decode(str_replace('\n','',$str));//替换\n
// Source : https://leetcode.com/problems/3sum-closest/
// Author : Han Zichi
// Date   : 2016-02-04

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */

function binarySearch(a, target) {
  var start = 0
    , end = a.length - 1;

  while(start <= end) {
    var mid = ~~((start + end) >> 1);
    if (a[mid] >= target)
      end = mid - 1;
    else 
      start = mid + 1;
  }

  return start;
}


var threeSumClosest = function(nums, target) {
  nums.sort(function(a, b) {
    return a - b;
  });

  var len = nums.length;
  var ans = Infinity;

  for (var i = 0; i < len; i++)
    for (var j = i + 1; j < len; j++) {
      var a = target - nums[i] - nums[j];
      var pos = binarySearch(nums, a);
      
      for (var k = Math.max(0, pos - 1); k <= Math.min(pos + 0, len - 1); k++) {
        if (k === i || k === j) 
          continue;

        var sum = nums[i] + nums[j] + nums[k];
        if (Math.abs(sum - target) < Math.abs(ans - target))
          ans = sum;
      }

    }

  return ans;
};

遇到同样的问题,从搜索引擎搜到这个网页,然后发现是子迟。
更简单的办法是不用转换,下面这个链接就是
https://raw.githubusercontent...
如下图所示,在github页面上,点击raw,只有源代码的页面就出现了
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进