2011-04-22 87 views
4

例如,假設我想將一個64位有符號整數編碼爲base64,我如何(如果可能)在Javascript中執行此操作?爲了澄清,我想編碼數據的實際位/字節,而不是數據的字符串或字符串表示。如何使用Javascript將任意字節/數據編碼爲base64格式?

I.e.十進制中的整數15等於二進制中的0000 1111,這與base64形式中的Dw ==相等。

我不想編碼整數15的字符串表示形式。作爲比較,如果您在base64中編碼字符串「15」,實際上編碼爲0011 0001 0011 0101,這會給你MTU = base64形式(這是window.atob()所做的)。

+0

你爲什麼要這麼做?即誰將會使用base64編碼版本的數據?什麼是你需要一個整數的二進制表示的基本要求是什麼? – ewh 2011-04-22 19:31:03

+0

您要求提供「64位」數據。因此,你的15實際上是'00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001111',並且對於你的8位示例,它將編碼爲「」AAAAAAAAAA8 =「'而不是'」DW ==「'。 – 2011-04-22 19:44:05

回答

3

首先轉換爲字符串,然後用其他的標準B64編碼器BTOA或一個:

window.btoa(String.fromCharCode(15)); // Dw== 
2

您可以在支持它的瀏覽器中使用window.btoa(),在其他瀏覽器中可以使用this encoder

--edit

你將不得不把它寫自己所有,任何爲你傳遞到「window.btoa」是會得到先轉換爲字符串。 This answer可能是一個很好的開始;雖然Gears已經停產,但很多相關功能都在HTML5/W3C File API,其中有some experimental implementations

+0

我說的是任意數據,而不是字符串。 – Oaa 2011-04-22 18:19:16

+0

@OaA啊,好的。然後它變得更復雜一點。 – robertc 2011-04-22 21:34:11

相關問題