例如,假设我想将64位带符号整数编码为base64,我如何(如果可能的话)在Javascript中做到这一点?
澄清一下,我想对数据的实际位/字节进行编码,而不是数据的字符串或字符串表示。
。十进制形式的整数15等于二进制形式的0000 1111,即base64形式的Dw==
我不想对整数15的字符串表示形式进行编码。为了比较,如果你用base64编码字符串"15",你实际上是在编码0011 0001 0011 0101,这将给你base64形式的MTU=(这就是window.atob()
所做的)。
首先转换为字符串,然后使用btoa或其他标准b64编码器之一:
window.btoa(String.fromCharCode(15)); // Dw==
您可以在支持它的浏览器中使用window.btoa(),在其他浏览器中您可以使用此编码器
——编辑
你必须自己写,就像你传递给'window '的任何东西一样。Btoa '会首先被转换成字符串。这个答案可能是一个很好的起点;虽然Gears已经停产了,但很多相关的功能都在HTML5/W3C文件API中,它有一些实验性的实现。