来自base64编码二进制字符串的NSData



我有一个文件,我正在将其读取为二进制文件,并使用base64对其进行编码,并通过API发送。

该文件如下所示:

f = File.open 'brass.syx'
 => #<File:brass.syx>
2.2.0 :022 > f.binmode
 => #<File:brass.syx>
2.2.0 :023 > f.read
 => "xF0Cx00t x00*8x14Fcx00x00x00cx00x00x00?x04Ox0Ex1507x162b=>x00x00x00x00x000x04Fx06x06B\x1625=>x00x00x00x00x008x04Ox02x00.#x168cVVx00x00x00x00x009fOx02x00%"x0F@Ux00x00x00x00x00x00x00:bCx02x009x18x13<cVVx00x00x00x00x00:bcx02x00^C_<5222x11x0F#x00x05x00x10x18BRASS 1   M8x14Fcx00x00x00x00x00x00x00?x00Ox0Ex1507x162b=>x00x00x00x00x000x00Fx06x06B\x1625=>x00x00x00x00x008x00Ox02x00.#x162cVVx00x00x00x00x009x04Mx02x00%"x0FFUx00x00x00x00x00x00x00:x04Fx02x007x18x137cVVx00x00x00x00x00:bcx02x00^C_<2222x11x0E#x00x05x000x18BRASS 2   5 x1C:ca`x00x00x00x00x05dbPx00x00C$eGcacx00'x00x00x0F@x00cx00x00C$eGcacx00'x00x00x0FHx00cx00x00C$eGcacx00'x00x00x0F0x00cx00x00# x1C:ca`x00x00x00x00x05\x00Xx00x00C$eGcacx00'x00x00x0F8x00cx00x00T__<2222x15x0F%x00x00x00bx18BRASS 3   Mex101Zc[x00x00x00fx00px000x06x00Fex101Zc[x00x00x00x04x00Px00[x00x00Fex101Zc[x00x00x00x00x00bx00Lx00x00@(x17*ca^x00x00x00x00x00Hx00cx00x002x1Ax12x1F^c_x00(x00x05x00hx00Xx00x00Acc)cccx00x00x00x00x00 x00cx00x00cccc2222x01r!x00nx00x11x18BRASS 4   Fex101Zc[x00x00x00fx00bx00cx02x00Fex101Zc[x00x00x00x04x00bx00Ax00x00Fex101Zc[x00x00x00x00x00hx00Fx00x00@(x17*ca^x00x00x00x00x00px00cx00x002x1At*^c]x00(x00x05x00px00Sx00x00Acc)cccx00x00x00x00x00(x00cx00x00cccc2222bx0Ex0Ex00rx00x11x18BRASS ENS Fr<5bPUx006x00x00x00Ix00\x0225r<5bPUx006x00x00x009x009x0225r<5bPUx006x00x00x00)x04Tx022>Fx146c\Tx00x00x00x00x00Zx00bx0225.<5b__x006x00x00x00x01x04Rx02x00>Fx146ca_x00x00x00x00x00:x04cx02x00^C_<2222x01x0F&!x00Gx10fBRASS 5THSHex101Zc[x00x00x00fx00px00cx06x00Fex101Zc[x00x00x00x04x00Px00Ix00x00Fex101Zc[x00x00x00x00x00x18x00Ux00x00@(x17*ca^x00x00x00x00x00Hx00cx00x002x1Ax12x1F^c_x00(x00x05x00Px00Yx00x00Acc)cccx00x00x00x00x008x00cx00x00cccc2222ex0F!x00nx00x01x18PERCBRASS F$x1A3c`^x00x00x00x00x049x03Qx02x009Bx113c^Zx00'x00x00x06;x03cx02x009Bx113c^Zx00'x00x00x06;x03cx02x008x11x113c^Zx00'x00x00x06;x03cx02x00F%x038c6x00x00'x00x00x06:aYx00b<B0:c6x00x00'x00x00x06:acx00x00T__<2222x15rx1Ex00x00x00x18fBRASS BC1 2=x130cbcx00'x00x0Ex00tx03Px02x012x14x142c__x00x00x00x00x00:x03cx02x002x14x141c__x00x00x00x00x00:x03ax02x002x14x141c`_x00x00x00x00x00:x03cx02x002x0Fx0F1cccx00.x00=x00rx007x00@2x14x141c__x00x00x00x00x00:x03cx02x00^C_<2222x15x0F"!x00x00x18x18BRASS BC2 Mx1Ex104ca`x00x00x00x03x00x1Ax06Rx02x012ex104cacx00x00x00x00x00Rx03cx01x0F2ex104cacx00x00x00x00x00:x03ax01x0F2ex104cacx00x00x00x00x00"x03cx01x0F6x1C&1cbax00.x00cx00rt^x02x0081-3c`cx00x00x00x00x00x02x03cx01x00^C_<2222x15x0F"!x00x00x18fBC BRSENSM5 x182ca^x00x00x00x00x00Px1CMx02x005 x182ca^x00x00x00x00x00Px10Ox02x005x1Ex162ca^x00x00x00x00x000f@x02x00.#x162c`_x00x00x00x00x00Kx18Ox02x00%"x0FFUx00x00x00x00x00x00x00Zf`x02x00=x17x117cVVx00x00x00x00x00*x04cx02x00^C_<1322x11x0F#x00x00x00x00fHORNS 1   M8x14Fcx00x00x00x00x00x00x00?x00Ox0Ex1507x162b=>x00x00x00x00x000x00Fx06x06B\x1625=>x00x00x00x00x008x00Rx02x00.#x162c`_x00x00x00x00x00;x10Px02x00%"x0FFUx00x00x00x00x00x00x00:x04Fx02x00=x17x117cVVx00x00x00x00x00:bcx02x00^C_<2222x11x0F#x00x00x000fHORNS 2   M8x14Fcx00x00x00x00x00x00x00?x00Tx0Ex1507x162b=>x00x00x00x00x000x00Fx06x06B\x1625A>x00x00x00x00x008x00]x02x00.#x118cV[x00x00x00x00x00rfPx02x00-"2@ca_x00x00x00x00x00rbSx02x009x18x13<cV\x00x00x00x00x00:x00cx02x00^C_<5222x11x0F#x00x00x00x10fHORNS 3   M x182ca^x00x00x00x00x00Px1CMx02x005 x182ca^x00x00x00x00x00Px10Ox02x005x1Ex162ca^x00x00x00x00x000f@x02x00.#x162c`_x00x00x00x00x00Kx18Ox02x00%"x0FFUx00x00x00x00x00x00x00Zf`x02x00=x17x117cVVx00x00x00x00x00*x04cx02x00^C_<1322x11x0F#x00x00x00x00fHORNS 4   #x19x1CDcccx00'62x05tx1ATx02x002x13x1FGc`cx00'x00x00x0F(x04cx02x002x13x1FGc`cx00'x00x00x0FHx04cx02x002x13x1FGc`cx00'x00x00x0FHx04cx02x004x1Ax1D/c``x00ex00x04x03Hx01^x02x009x18x122c^`x00'x00x00x0FBx04cx02x00T__<2222x15x0F 8x00x00bfHORNS 5   ;x19x1CDc^^x00'62x05trOx02x004$)Gcbbx00'x00x00x0F(bcx02x007$)Gcbbx00'x00x00x0FHbcx02x009LRGcbbx00'x00x00x0FHbcx02x004x1Ax1D/]bax00ex00x04x03Hx00Sx02x009x18x122c^`x00'x00x00x0FBx00cx02x00T__<2222x15x0F 8x00x00bfHORNS 6   cex101Zc[x00x00x00fx00pf^x00x00.ex105Zc[x00x00x00x04x008x00Tx00x00.ex101Zc[x00x00x00x00x00(x00Kx00x00E(x17,ca^x00x00x00x00x00 x00cx01#1x1Ax12*^cx00x00(x00x05x00PbUx00x00Bcc,cccx00x00x00x00x00(x00cx01!cccc2222bx0E#x00x00x00x01x18HORNS 7   F8x14Fcx00x00x00x00x00x00x00?x04Tx0Ex1507x162b=>x00x00x00x00x000x04Fx06x06B\x1625A>x00x00x00x00x008x04]x02x004x1C28cVXx00x00x00x00x00rrWx02x004x1C28cVZx00x00x00x00x00rx05`x02x009x18x13<cV\x00x00x00x00x00:x04cx02x00^C_<5222x11x0F#x00x00x00x00fHORNS BC1 58x14Fcx00x00x00x00x00x00x00?x00Ox0Ex0007x162b=>x00x00x00x00x000x00Fx06"B\x1625=>x00x00x00x00x008x03Rx02x00.#x162c`_x00x00x00x00x00;x03Ox02x00%"x0FFca_x00x00x00x00x00:x03Qx02x00=x1C,7c\cx00x00x00x00x00:x03cx02x00^C_<1322x11x0F#x00x00x00x10x18HORNS BC2 ,8x14Fcx00x00x00x00x00x00x00?x04Ox0Ex1507x162b=>x00x00x00x00x000x04Fx06x06B\x1625=>x00x00x00x00x008x04Ox02x00.#x168cVVx00x00x00x00x009fOx02x00%"x0F@Ux00x00x00x00x00x00x00:bCx02x009x18x13<cVVx00x00x00x00x00:bcx02x00^C_<5222x11x0F#x00x03x00x10fFRENCHHORN.8x14Fcx00x00x00x00x00x00x00?fcx0Ex150fx162c==x00x00x00x00x005x002fx04BLx162c==x00?x00x00x00=x10Jx02x00)fx162c==x00x00x00x00x00=x04Ox02x00cfx162Ux00x00x00Dx00`x04:x1C2x04x05Fx18x137cVVx00x00x00x00x00:x10cx02x00VC_<4222x11x0F"-x05x00 x18TRUMPET   Mex10x1FZc^x00x00x00x11x00bx00cx04x00Fex10(Zc_x00x00x00x00x00px00Ax00x00Fex10'Zc^x00x00x00x00x00bx00Rx00x00@(x17*ca^x00x00x00x00x008x00cx00x002x1At$^c^x00x18x00x05x00px04Vx00x00Acc)cccx00x00x00x00x00hx00cx00x00cccc2222bx0Ex17x00vx00!x18ANLGBRASS cLn c\x00x00x00x00x00x008x00Rx04x00LIn7c\x00x00x00x00x00x008x00Px04x008Jn-bb$x00bx00x00x008x00Hx04x006x0Fn/c\x00x00x00x00x00x00hx00`x04x005. =c]Zx00x00x00x00x00bx00Sx02x00P8n-bb$x00bx00x00x008x00cx02x00T__<2222x01x0Fx1E?x06x008fORCHESTRA cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00x00x02x00cccccccx00x00x00x00x008x00cx02x00cccc2222x00b#x00x00x001x18          qxF7"
 2.2.0 :024 > Base64.encode64 _ # <-- what is sent over the wire
  => "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A4AAACAGNjY2NjY2MAnAAAAADgAYwIAY2NjYzIyMjIACCMAAAAxGCAgICAgICAgICBjY2NjY2NjAAAAnAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjnY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOABjnAgBjY2NjMjIyMgAIIwAAADEYICAgICAgICAgIGNjY2NjY2MAAAAAADgAAAIAnY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAnADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AGMCAGNjY2MynMjIyAAgjAAAAMRggICAgICAgICAgY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjnAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAAAIAY2NjY2NjYwAAAAAAOAAAAgBjnY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAYwIAY2NjYzIyMjIACCMAnAAAxGCAgICAgICAgICBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAAAAAADgAnAAIAY2NjY2NjYwAAAAAAOAAAAgBjY2NjY2NjAAAAAAA4AAACAGNjY2NjY2MAnAAAAADgAAAIAY2NjY2NjYwAAAAAAOABjAgBjY2NjMjIyMgAIIwAAADEYICAgnICAgICAgIHH3n"

解析我的 api 调用后,我尝试了两种方法:

    NSString *string = [NSString stringWithFormat:@"data:application/octet-stream;base64,%@", encodedString];
    NSURL *url = [NSURL URLWithString:string];
    NSData *data = [NSData dataWithContentsOfURL:URL];

    NSData *data = [[NSData alloc] initWithBase64EncodedString:encodedString options:0];

两者都会导致数据为零... 如何从 base64 编码的二进制数据字符串中正确获取 NSData 对象?

如果您提供 NSDataBase64DecodingIgnoreUnknownCharacters 选项来initWithBase64EncodedString ,它将忽略字符串中出现的换行符。

NSData *data = [[NSData alloc] initWithBase64EncodedString:encodedString options:NSDataBase64DecodingIgnoreUnknownCharacters];

当我这样做时,您的 base64 字符串被正确解码。

最新更新