【发布时间】:2014-06-05 02:01:33
【问题描述】:
任何人都知道将 HEX 编码字符串转换为 base64 编码字符串的 JavaScript 代码的良好 sn-p 代码吗?
【问题讨论】:
-
btoa("4142434445464748494a4b4c4d4e4f505152535455565758595a".match(/\w{2}/g).map(function(a){return String.fromCharCode(parseInt(a, 16));} ).join (""))
-
@dandavis 的评论中有一个
‌​(零宽度非连接符后跟一个零宽度空格),这使得截图失败并出现相当神秘的错误“SyntaxError:非法字符”在 Firefox 中,在 Chrome 中出现“SyntaxError: Unexpected token ILLEGAL”。这是固定代码:btoa("4142434445464748494a4b4c4d4e4f505152535455565758595a".match(/\w{2}/g).map(function(a){return String.fromCharCode(parseInt(a, 16));} ).join("")) -
更新: 我尝试在我之前的评论中粘贴一个工作版本,但似乎是 StackOverflow 添加了不可见字符——这到底是什么?!所以我想,目前唯一的解决方案是尝试将代码复制到显示此类不可见字符的编辑器(如果您手头没有,请尝试diffchecker.com)并删除罪魁祸首。那么它应该可以工作了。
-
亲爱的@Chris Dutrow 请注意我的问题:stackoverflow.com/questions/34963963/…
-
@dandavis 出于性能原因,我会这样做:
btoa(String.fromCharCode.apply(null, hex.match(/\w{2}/g).map(function(a) { return parseInt(a, 16) })))
标签: javascript string base64 hex